diff --git a/Export/Game.apk b/Export/Game.apk new file mode 100644 index 0000000..405617b Binary files /dev/null and b/Export/Game.apk differ diff --git a/Export/Game.apk.idsig b/Export/Game.apk.idsig new file mode 100644 index 0000000..996f933 Binary files /dev/null and b/Export/Game.apk.idsig differ diff --git a/Export/Game.exe b/Export/Game.exe index 9d0305f..ec51826 100644 Binary files a/Export/Game.exe and b/Export/Game.exe differ diff --git a/Export/Game.pck b/Export/Game.pck deleted file mode 100644 index 2ea6d1a..0000000 Binary files a/Export/Game.pck and /dev/null differ diff --git a/Game.gd b/Game.gd deleted file mode 100644 index 2366928..0000000 --- a/Game.gd +++ /dev/null @@ -1,65 +0,0 @@ -extends Node2D - - -const SlotClass = preload("res://Slot.gd") -var Panzer_Temp = preload("res://Panzer.tscn") -onready var game_slots = $VBoxContainer/PanzerSlots -var holding_item = null -var buy_panzer_left = 0 - -signal speed_shoot - -func _ready(): - for gam_slot in game_slots.get_children(): - gam_slot.connect("gui_input", self, "slot_gui_input", [gam_slot]) - var pBars = get_tree().get_nodes_in_group("XP") - for pBar in pBars: - pBar.connect("full_bar", self, "_enable_Panzer") - - -func slot_gui_input(event: InputEvent, slot: SlotClass): - if event is InputEventMouseButton: - if event.button_index == BUTTON_LEFT && event.pressed: - if holding_item != null: - if!slot.Panzer: - slot.putIntoSlot(holding_item) - holding_item = null - else: - var temp_item = slot.Panzer - slot.pickFromSlot() - temp_item.global_position = event.global_position - slot.putIntoSlot(holding_item) - holding_item = temp_item - elif slot.Panzer: - holding_item = slot.Panzer - slot.pickFromSlot() - holding_item.global_position = get_global_mouse_position() - -func _input(event): - if holding_item: - holding_item.global_position = get_global_mouse_position() - pass - - -func _on_Panzer_pressed(): - buy_panzer_left -= 1 - if buy_panzer_left == 0: - $VBoxContainer/ButtonGrid/Panzer.disabled = true - if holding_item == null: - var Panzer = null - Panzer = Panzer_Temp.instance() - add_child(Panzer) - holding_item = Panzer - holding_item.global_position = get_global_mouse_position() - pass # Replace with function body. - - -func _on_Speed_pressed(): - var value = 0.5 - emit_signal("speed_shoot", value) - $VBoxContainer/ButtonGrid/Speed.disabled = true - pass # Replace with function body. - -func _enable_Panzer(value): - buy_panzer_left += 1 - $VBoxContainer/ButtonGrid/Panzer.disabled = false diff --git a/Main Scenes/Game.gd b/Main Scenes/Game.gd new file mode 100644 index 0000000..ddbeac5 --- /dev/null +++ b/Main Scenes/Game.gd @@ -0,0 +1,152 @@ +extends Node2D + + +const SlotClass = preload("res:///Objects/Slot.gd") +var Panzer_Temp = preload("res://Objects/Panzer.tscn") +onready var game_slots = $VBoxContainer/PanzerSlots +onready var overlay_node = find_node("Overlay") +var holding_item = null +var buy_panzer_left = 0 +var life = 100 +var hover = null +onready var start_panzer = 1 +var rng = RandomNumberGenerator.new() + +signal speed_shoot + +func _ready(): + #Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) + var node = String("Slot ") + node += rng.randi_range(1, 8) as String + node = find_node(node) + node.start_panzer += 1; + $Panel/Area2D/LifeBar.value = life + overlay_node.connect("score", self, "update_life_bar") + for gam_slot in game_slots.get_children(): + gam_slot.connect("gui_input", self, "slot_gui_input", [gam_slot]) + var pBars = get_tree().get_nodes_in_group("XP") + for pBar in pBars: + pBar.connect("full_bar", self, "_enable_Panzer") + +func _process(delta): + if $Panel/Area2D/LifeBar.value == 0: + get_tree().change_scene("res://Main Scenes/GameOver.tscn") + +func slot_gui_input(event: InputEvent, slot: SlotClass): +# if OS.get_name() != "Android": +# if event is InputEventMouseButton: +# if event.button_index == BUTTON_LEFT && event.pressed: +# _Panzer_Slot_handler(event, slot) +# else: + if event is InputEventScreenTouch: + if event.pressed: + _Panzer_Slot_handler_touch(event, slot) + else: + if holding_item != null and hover == null and holding_item.old_slot != null: + holding_item.old_slot.putIntoSlot(holding_item) + holding_item = null + elif holding_item != null and hover != null: + drag_drop_handle(hover) + else: + pass + pass + + +func _input(event): + if event is InputEventScreenDrag: + if holding_item: + holding_item.global_position = get_global_mouse_position() + pass + + +func _on_Panzer_pressed(): + if holding_item == null: + buy_panzer_left -= 1 + if buy_panzer_left == 0: + $VBoxContainer/ButtonGrid/Panzer.disabled = true + var Panzer = null + Panzer = Panzer_Temp.instance() + add_child(Panzer) + holding_item = Panzer + holding_item.global_position = get_global_mouse_position() + pass # Replace with function body. + + +func _on_Speed_pressed(): + var value = 0.5 + emit_signal("speed_shoot", value) + $VBoxContainer/ButtonGrid/Speed.disabled = true + pass # Replace with function body. + +func _enable_Panzer(value): + buy_panzer_left += 1 + $VBoxContainer/ButtonGrid/Panzer.disabled = false + +func update_life_bar(): + var lifebar = find_node("LifeBar") + lifebar.value = lifebar.max_value + pass + + +func _on_Bullet_Grave_area_entered(area): + if area.is_in_group("Bullet"): + var Bullet = area.get_parent() + Bullet.queue_free() + pass # Replace with function body. + +func _Panzer_Slot_handler(event: InputEvent, slot: SlotClass): + if holding_item != null: + if!slot.Panzer: + slot.putIntoSlot(holding_item) + holding_item = null + elif slot.Panzer and holding_item.PanzerType == slot.Panzer.PanzerType: + slot.upgradePanzerInSlot() + holding_item.queue_free() + holding_item = null + else: + print("yes") +# var temp_item = slot.Panzer +# slot.pickFromSlot() +# temp_item.global_position = event.global_position +# slot.putIntoSlot(holding_item) +# holding_item = temp_item + holding_item.old_slot.putIntoSlot(slot.Panzer) + slot.Panzer.old_slot.putIntoSlot(holding_item) + elif slot.Panzer: + holding_item = slot.Panzer + slot.pickFromSlot() + holding_item.global_position = get_global_mouse_position() + +func _Panzer_Slot_handler_touch(event: InputEvent, slot: SlotClass): + if holding_item != null and holding_item.old_slot != slot: + if!slot.Panzer: + slot.putIntoSlot(holding_item) + holding_item = null + elif slot.Panzer and holding_item.PanzerType == slot.Panzer.PanzerType: + slot.upgradePanzerInSlot() + holding_item.queue_free() + holding_item = null + elif holding_item.old_slot != slot: + pass + elif slot.Panzer and holding_item == null: + holding_item = slot.Panzer + slot.pickFromSlot() + holding_item.global_position = get_global_mouse_position() + +func drag_drop_handle(hover): + if!hover.Panzer: + hover.putIntoSlot(holding_item) + holding_item = null + elif hover.Panzer and holding_item.PanzerType == hover.Panzer.PanzerType: + hover.upgradePanzerInSlot() + holding_item.queue_free() + holding_item = null + elif holding_item.old_slot != null: + var temp = hover.Panzer + var temp2 = holding_item + hover.pickFromSlot() + hover.putIntoSlot(holding_item) + print(holding_item.old_slot) + temp2.old_slot.putIntoSlot(temp) + holding_item = null + diff --git a/Game.tscn b/Main Scenes/Game.tscn similarity index 55% rename from Game.tscn rename to Main Scenes/Game.tscn index 339ba13..aff27fe 100644 --- a/Game.tscn +++ b/Main Scenes/Game.tscn @@ -1,12 +1,13 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 format=2] -[ext_resource path="res://box.png" type="Texture" id=1] -[ext_resource path="res://Slot.gd" type="Script" id=2] -[ext_resource path="res://Game.gd" type="Script" id=3] -[ext_resource path="res://Spawner.gd" type="Script" id=4] -[ext_resource path="res://retrowave.png" type="Texture" id=5] +[ext_resource path="res://retrowave.png" type="Texture" id=1] +[ext_resource path="res://Objects/Overlay.tscn" type="PackedScene" id=2] +[ext_resource path="res://Main Scenes/Game.gd" type="Script" id=3] +[ext_resource path="res://Objects/Slot.tscn" type="PackedScene" id=4] +[ext_resource path="res://Objects/Spawner.gd" type="Script" id=5] [ext_resource path="res://Font/super-legend-boy-font/SuperLegendBoy-4w8Y.ttf" type="DynamicFontData" id=6] -[ext_resource path="res://Overlay.tscn" type="PackedScene" id=7] +[ext_resource path="res://box.png" type="Texture" id=7] +[ext_resource path="res://Objects/PanzerButton.tscn" type="PackedScene" id=8] [sub_resource type="TileSet" id=1] @@ -14,23 +15,22 @@ extents = Vector2( 288, 20 ) [sub_resource type="StyleBoxTexture" id=3] -texture = ExtResource( 1 ) -region_rect = Rect2( 0, 0, 8, 8 ) - -[sub_resource type="StyleBoxTexture" id=2] -texture = ExtResource( 1 ) +texture = ExtResource( 7 ) region_rect = Rect2( 0, 0, 8, 8 ) [sub_resource type="DynamicFont" id=5] font_data = ExtResource( 6 ) +[sub_resource type="RectangleShape2D" id=6] +extents = Vector2( 288, 40 ) + [node name="Game" type="Node2D"] script = ExtResource( 3 ) -[node name="Sprite" type="Sprite" parent="."] +[node name="Background" type="Sprite" parent="."] position = Vector2( 288, 592 ) scale = Vector2( 0.463768, 0.5 ) -texture = ExtResource( 5 ) +texture = ExtResource( 1 ) [node name="TileMap" type="TileMap" parent="."] tile_set = SubResource( 1 ) @@ -44,6 +44,10 @@ rect_min_size = Vector2( 575, 32 ) [node name="Area2D" type="Area2D" parent="Panel" groups=["Border"]] +[node name="LifeBar" type="ProgressBar" parent="Panel/Area2D"] +margin_right = 576.0 +margin_bottom = 40.0 + [node name="CollisionShape2D" type="CollisionShape2D" parent="Panel/Area2D"] position = Vector2( 288, 20 ) shape = SubResource( 4 ) @@ -61,7 +65,7 @@ margin_right = 128.0 margin_bottom = 128.0 rect_min_size = Vector2( 128, 128 ) custom_styles/panel = SubResource( 3 ) -script = ExtResource( 4 ) +script = ExtResource( 5 ) [node name="Spawner 2" type="Panel" parent="Spawner" groups=["Spawner"]] margin_left = 149.0 @@ -69,7 +73,7 @@ margin_right = 277.0 margin_bottom = 128.0 rect_min_size = Vector2( 128, 128 ) custom_styles/panel = SubResource( 3 ) -script = ExtResource( 4 ) +script = ExtResource( 5 ) [node name="Spawner 3" type="Panel" parent="Spawner" groups=["Spawner"]] margin_left = 298.0 @@ -77,7 +81,7 @@ margin_right = 426.0 margin_bottom = 128.0 rect_min_size = Vector2( 128, 128 ) custom_styles/panel = SubResource( 3 ) -script = ExtResource( 4 ) +script = ExtResource( 5 ) [node name="Spawner 4" type="Panel" parent="Spawner" groups=["Spawner"]] margin_left = 447.0 @@ -85,7 +89,7 @@ margin_right = 575.0 margin_bottom = 128.0 rect_min_size = Vector2( 128, 128 ) custom_styles/panel = SubResource( 3 ) -script = ExtResource( 4 ) +script = ExtResource( 5 ) [node name="VBoxContainer" type="VBoxContainer" parent="."] margin_top = 800.0 @@ -99,79 +103,41 @@ custom_constants/vseparation = 10 custom_constants/hseparation = 21 columns = 4 -[node name="Slot 1" type="Panel" parent="VBoxContainer/PanzerSlots"] -margin_right = 128.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) +[node name="Slot 1" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] -[node name="Slot 2" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 2" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 149.0 margin_right = 277.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 3" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 3" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 298.0 margin_right = 426.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 4" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 4" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 447.0 margin_right = 575.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 5" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 5" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_top = 138.0 -margin_right = 128.0 margin_bottom = 266.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 6" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 6" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 149.0 margin_top = 138.0 margin_right = 277.0 margin_bottom = 266.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 7" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 7" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 298.0 margin_top = 138.0 margin_right = 426.0 margin_bottom = 266.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) -[node name="Slot 8" type="Panel" parent="VBoxContainer/PanzerSlots"] +[node name="Slot 8" parent="VBoxContainer/PanzerSlots" instance=ExtResource( 4 )] margin_left = 447.0 margin_top = 138.0 margin_right = 575.0 margin_bottom = 266.0 -rect_min_size = Vector2( 128, 128 ) -rect_pivot_offset = Vector2( 64, 64 ) -custom_styles/panel = SubResource( 2 ) -script = ExtResource( 2 ) [node name="ButtonGrid" type="GridContainer" parent="VBoxContainer"] margin_top = 270.0 @@ -187,20 +153,21 @@ custom_fonts/font = SubResource( 5 ) disabled = true text = "Speed" -[node name="Panzer" type="Button" parent="VBoxContainer/ButtonGrid"] -margin_left = 132.0 -margin_right = 260.0 -margin_bottom = 128.0 -rect_min_size = Vector2( 128, 128 ) -custom_fonts/font = SubResource( 5 ) +[node name="Panzer" parent="VBoxContainer/ButtonGrid" instance=ExtResource( 8 )] disabled = true -text = "Panzer" -[node name="Control" parent="." instance=ExtResource( 7 )] +[node name="Overlay" parent="." instance=ExtResource( 2 )] anchor_right = 0.0 anchor_bottom = 0.0 margin_right = 575.0 margin_bottom = 0.0 +[node name="Bullet_Grave" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Bullet_Grave"] +position = Vector2( 288, -40 ) +shape = SubResource( 6 ) + [connection signal="pressed" from="VBoxContainer/ButtonGrid/Speed" to="." method="_on_Speed_pressed"] [connection signal="pressed" from="VBoxContainer/ButtonGrid/Panzer" to="." method="_on_Panzer_pressed"] +[connection signal="area_entered" from="Bullet_Grave" to="." method="_on_Bullet_Grave_area_entered"] diff --git a/GameOver.tscn b/Main Scenes/GameOver.tscn similarity index 94% rename from GameOver.tscn rename to Main Scenes/GameOver.tscn index 5d16c95..8bb7c51 100644 --- a/GameOver.tscn +++ b/Main Scenes/GameOver.tscn @@ -20,7 +20,7 @@ func _ready(): func _on_Button_pressed(): - get_tree().change_scene(\"res://Game.tscn\") + get_tree().change_scene(\"res://Main Scenes/Game.tscn\") pass # Replace with function body. " diff --git a/Main Scenes/MainMenu.tscn b/Main Scenes/MainMenu.tscn new file mode 100644 index 0000000..3cf37b2 --- /dev/null +++ b/Main Scenes/MainMenu.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Font/super-legend-boy-font/SuperLegendBoy-4w8Y.ttf" type="DynamicFontData" id=1] +[ext_resource path="res://retrowave.png" type="Texture" id=2] + +[sub_resource type="GDScript" id=2] +script/source = "extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + + +func _on_Start_pressed(): + get_tree().change_scene(\"res://Main Scenes/Game.tscn\") + pass # Replace with function body. +" + +[sub_resource type="DynamicFont" id=1] +font_data = ExtResource( 1 ) + +[node name="Node2D" type="Node2D"] +script = SubResource( 2 ) + +[node name="Background" type="Sprite" parent="."] +position = Vector2( 288, 592 ) +scale = Vector2( 0.463768, 0.5 ) +texture = ExtResource( 2 ) + +[node name="Control" type="Control" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = 288.0 +margin_top = 504.0 +margin_right = 328.0 +margin_bottom = 544.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -180.0 +margin_top = -12.0 +margin_right = 140.0 +margin_bottom = 140.0 + +[node name="Button" type="Button" parent="Control/VBoxContainer"] +margin_right = 320.0 +margin_bottom = 70.0 +rect_min_size = Vector2( 0, 70 ) +custom_fonts/font = SubResource( 1 ) +text = "Start" + +[connection signal="pressed" from="Control/VBoxContainer/Button" to="." method="_on_Start_pressed"] diff --git a/Bullet.tscn b/Objects/Bullet.tscn similarity index 81% rename from Bullet.tscn rename to Objects/Bullet.tscn index 9039c29..6e9b5a8 100644 --- a/Bullet.tscn +++ b/Objects/Bullet.tscn @@ -9,6 +9,7 @@ script/source = "extends KinematicBody2D var velocity = Vector2(0,-1) var speed = 300 +var hit_power = 2 # Declare member variables here. Examples: # var a = 2 @@ -20,22 +21,16 @@ func _ready(): pass # Replace with function body. func _physics_process(delta): - move_and_collide(velocity.normalized() * delta * speed) pass - - -func _on_Area2D_area_entered(area): - if !area.is_in_group(\"Border\"): - queue_free() - pass # Replace with function body. " [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 3.33333, 3.33333 ) -[node name="Node2D" type="KinematicBody2D"] +[node name="Bullet" type="KinematicBody2D"] scale = Vector2( 1.5, 1.5 ) +z_index = 1 script = SubResource( 3 ) [node name="Sprite" type="Sprite" parent="."] @@ -51,5 +46,3 @@ shape = SubResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] position = Vector2( 5.96046e-08, -5.96046e-08 ) shape = SubResource( 2 ) - -[connection signal="area_entered" from="Area2D" to="." method="_on_Area2D_area_entered"] diff --git a/Entity.tscn b/Objects/Entity.tscn similarity index 59% rename from Entity.tscn rename to Objects/Entity.tscn index 6e8a8c3..32fe340 100644 --- a/Entity.tscn +++ b/Objects/Entity.tscn @@ -6,20 +6,25 @@ [sub_resource type="GDScript" id=1] script/source = "extends KinematicBody2D +var pre_bullet_hit = preload(\"res://Objects/bullet_hit.tscn\") var velocity = Vector2(0,1) var speed = 50 var life = 2 +var rng = RandomNumberGenerator.new() signal on_Death # Called when the node enters the scene tree for the first time. func _ready(): - var text = randi() % life as int - $Label.text = (text+1) as String + rng.randomize() + var text = rng.randi_range(life/2, life) + life = text + $Label.text = (text) as String + if(life > 9): + pass var Progressbars = get_tree().get_nodes_in_group(\"XP\") for Progressbar in Progressbars: self.connect(\"on_Death\",Progressbar, \"on_Death_listed\") - Progressbar.connect(\"full_bar\", self, \"set_speed\") pass # Replace with function body. func _physics_process(delta): @@ -28,22 +33,36 @@ func _physics_process(delta): func _on_Area2D_area_entered(area): if area.is_in_group(\"Bullet\"): + var Bullet = area.get_parent() var text = $Label.text as int - if text > 1: - $Label.text = (text-1) as String + var value = 1 + var bullet_hit = pre_bullet_hit.instance() + var GameNode = find_parent(\"Game\") + if text >= Bullet.hit_power: + if text > Bullet.hit_power: + $Label.text = (text-Bullet.hit_power) as String + GameNode.add_child(bullet_hit) + bullet_hit.global_position = Bullet.global_position + bullet_hit.play() + Bullet.queue_free() + if text == Bullet.hit_power: + GameNode.add_child(bullet_hit) + bullet_hit.global_position = Bullet.global_position + bullet_hit.play() + emit_signal(\"on_Death\", value) + Bullet.queue_free() + queue_free() else: - var value = 1 + GameNode.add_child(bullet_hit) + bullet_hit.global_position = Bullet.global_position + bullet_hit.play() + Bullet.hit_power -= life emit_signal(\"on_Death\", value) queue_free() if area.is_in_group(\"Border\"): - get_tree().change_scene(\"res://GameOver.tscn\") + area.get_node(\"LifeBar\").value -= $Label.text as int + queue_free() pass # Replace with function body. - -func set_speed(value): - var Spawner = get_tree().get_nodes_in_group(\"Spawner\") - for Spawn in Spawner: - Spawn.e_speed += value - Spawn.e_life *= 1.2 " [sub_resource type="RectangleShape2D" id=2] @@ -53,7 +72,7 @@ extents = Vector2( 4, 4 ) size = 12 font_data = ExtResource( 2 ) -[node name="Node2D" type="KinematicBody2D" groups=["Enemy"]] +[node name="Entity" type="KinematicBody2D" groups=["Enemy"]] position = Vector2( 64, 64 ) scale = Vector2( 12, 12 ) script = SubResource( 1 ) @@ -79,6 +98,9 @@ grow_horizontal = 2 grow_vertical = 2 rect_min_size = Vector2( 8, 8 ) rect_scale = Vector2( 0.545, 0.639 ) +custom_colors/font_color = Color( 1, 0, 0, 1 ) +custom_colors/font_outline_modulate = Color( 0, 0, 0, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) custom_fonts/font = SubResource( 3 ) text = "1" diff --git a/Overlay.tscn b/Objects/Overlay.tscn similarity index 62% rename from Overlay.tscn rename to Objects/Overlay.tscn index 8ffac09..c3d28ac 100644 --- a/Overlay.tscn +++ b/Objects/Overlay.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://Font/super-legend-boy-font/SuperLegendBoy-4w8Y.ttf" type="DynamicFontData" id=1] @@ -8,7 +8,7 @@ script/source = "extends Control onready var pBar = $CanvasLayer/ProgressBar signal full_bar - +signal score # Called when the node enters the scene tree for the first time. func _ready(): @@ -17,21 +17,29 @@ func _ready(): # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): + if ($CanvasLayer/Score.text as int % 100) == 0: + emit_signal(\"score\") if pBar.value == pBar.max_value: - var value = 5 + var value = 0.5 emit_signal(\"full_bar\", value) pBar.value = 0 - pBar.max_value *= 1.2 + pBar.max_value *= 2 pass func on_Death_listed(value): pBar.value += value + var score = $CanvasLayer/Score.text as int + $CanvasLayer/Score.text = (score+1) as String " [sub_resource type="DynamicFont" id=2] font_data = ExtResource( 1 ) -[node name="Control" type="Control" groups=["XP"]] +[sub_resource type="DynamicFont" id=3] +size = 24 +font_data = ExtResource( 1 ) + +[node name="Overlay" type="Control" groups=["XP"]] anchor_right = 1.0 anchor_bottom = 1.0 margin_bottom = -1040.0 @@ -42,6 +50,7 @@ script = SubResource( 1 ) [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="ProgressBar" type="ProgressBar" parent="CanvasLayer"] +modulate = Color( 0, 1, 0.972549, 1 ) anchor_left = 0.5 anchor_right = 0.5 margin_left = -144.0 @@ -50,8 +59,16 @@ margin_right = 48.0 margin_bottom = 62.0 rect_scale = Vector2( 1.5, 1.5 ) custom_fonts/font = SubResource( 2 ) -max_value = 5.0 +max_value = 16.0 -[node name="Label" type="Label" parent="."] -margin_right = 184.0 -margin_bottom = 160.0 +[node name="Score" type="Label" parent="CanvasLayer"] +margin_left = 256.0 +margin_top = 16.0 +margin_right = 296.0 +margin_bottom = 39.0 +grow_horizontal = 2 +grow_vertical = 2 +custom_fonts/font = SubResource( 3 ) +text = "0" +align = 1 +valign = 1 diff --git a/Objects/Panzer.tscn b/Objects/Panzer.tscn new file mode 100644 index 0000000..773da43 --- /dev/null +++ b/Objects/Panzer.tscn @@ -0,0 +1,135 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://assets/Tank Town V2.png" type="Texture" id=1] + +[sub_resource type="GDScript" id=1] +script/source = "extends Node2D + +var Time = 0 +const bulletPath = preload(\"res:///Objects/Bullet.tscn\") +var speed = 3 +onready var old_slot = null +onready var GameNode +var PanzerType = null +var hit_power = 2 + +func _ready(): + GameNode = find_parent(\"Game\") + GameNode.connect(\"speed_shoot\", self, \"set_shoot_speed\") + pass + +func _process(delta): + if get_parent().is_class(\"Panel\"): + old_slot = get_parent() + PanzerType(PanzerType) + Time += delta + if Time > speed and get_parent() != GameNode: #wenn er nicht gehoben wird dann: + shoot() + Time = 0 + pass + +func shoot(): + $Shoot.visible = true + $Shoot/AnimationPlayer.play(\"Shoot\") + var bullet = bulletPath.instance() + bullet.hit_power = hit_power + find_parent(\"Game\").add_child(bullet) + bullet.position = $Position2D.global_position + +func set_shoot_speed(value): + if speed != 0.5: + speed -= value + print(speed) + pass + +func PanzerType(PanzerType): + if PanzerType == null: + pass + if PanzerType == 1: + pass + if PanzerType == 2: + $Sprite.region_rect = Rect2(0, 64, 16, 16) + if PanzerType == 3: + $Sprite.region_rect = Rect2(0, 80, 16, 16) + if PanzerType == 4: + $Sprite.modulate = Color(0.875, 0, 1) + $Sprite.region_rect = Rect2(0, 80, 16, 16) + + + + +func _on_AnimationPlayer_shoot_finished(anim_name): + $Shoot.visible = false + pass # Replace with function body. +" + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 60 ] +} + +[sub_resource type="Animation" id=3] +resource_name = "Shoot" +length = 0.6 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 60, 63 ] +} + +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 12, 12 ) + +[node name="ShooterObject" type="Node2D"] +position = Vector2( 64, 64 ) +scale = Vector2( 2, 2 ) +z_index = 1 +script = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 3, 3 ) +texture = ExtResource( 1 ) +region_enabled = true +region_rect = Rect2( 0, 48, 16, 16 ) + +[node name="Position2D" type="Position2D" parent="."] +position = Vector2( 0.5, -28 ) + +[node name="Shoot" type="Node2D" parent="."] +visible = false +position = Vector2( 0, -40 ) + +[node name="Sprite" type="Sprite" parent="Shoot"] +scale = Vector2( 2, 2 ) +texture = ExtResource( 1 ) +hframes = 10 +vframes = 12 +frame = 60 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Shoot"] +anims/RESET = SubResource( 2 ) +anims/Shoot = SubResource( 3 ) + +[node name="panzerArea" type="Area2D" parent="." groups=["Panzer"]] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="panzerArea"] +shape = SubResource( 4 ) + +[connection signal="animation_finished" from="Shoot/AnimationPlayer" to="." method="_on_AnimationPlayer_shoot_finished"] diff --git a/Objects/PanzerButton.tscn b/Objects/PanzerButton.tscn new file mode 100644 index 0000000..f75347a --- /dev/null +++ b/Objects/PanzerButton.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Font/super-legend-boy-font/SuperLegendBoy-4w8Y.ttf" type="DynamicFontData" id=1] + +[sub_resource type="DynamicFont" id=5] +font_data = ExtResource( 1 ) + +[sub_resource type="GDScript" id=6] +script/source = "extends Button + +var Panzer = preload(\"res://Objects/Panzer.tscn\") + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +" + +[node name="PanzerButton" type="Button"] +margin_left = 132.0 +margin_right = 260.0 +margin_bottom = 128.0 +rect_min_size = Vector2( 128, 128 ) +custom_fonts/font = SubResource( 5 ) +text = "Panzer" +script = SubResource( 6 ) diff --git a/Objects/Slot.gd b/Objects/Slot.gd new file mode 100644 index 0000000..e80716b --- /dev/null +++ b/Objects/Slot.gd @@ -0,0 +1,45 @@ +extends Panel + +var PanzerType = preload("res://Objects/Panzer.tscn") +var Panzer = null +var start_panzer = 0 + +func _process(delta): + if start_panzer > 0: + if randi() % 2 == 0: + Panzer = PanzerType.instance() + add_child(Panzer) + start_panzer -= 1 + + +func pickFromSlot(): + remove_child(Panzer) + var GameNode = find_parent("Game") + GameNode.add_child(Panzer) + Panzer = null + +func putIntoSlot(new_panzer): + Panzer = new_panzer + Panzer.position = Vector2(64, 64) + var GameNode = find_parent("Game") + GameNode.remove_child(Panzer) + add_child(Panzer) + +func upgradePanzerInSlot(): + Panzer.hit_power *= 2 + if Panzer.PanzerType != null: + Panzer.PanzerType += 1 + else: + Panzer.PanzerType = 2 + pass + +func _set_start_panzer(value): + start_panzer += value + + +func _on_slotshape_area_entered(area): + if area.is_in_group("Panzer"): + var GameNode = find_parent("Game") + if GameNode.holding_item != null: + GameNode.hover = self + pass # Replace with function body. diff --git a/Objects/Slot.tscn b/Objects/Slot.tscn new file mode 100644 index 0000000..f01b73f --- /dev/null +++ b/Objects/Slot.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Objects/Slot.gd" type="Script" id=1] +[ext_resource path="res://box.png" type="Texture" id=2] + +[sub_resource type="StyleBoxTexture" id=2] +texture = ExtResource( 2 ) +region_rect = Rect2( 0, 0, 8, 8 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 56, 56 ) + +[node name="Slot" type="Panel"] +margin_right = 128.0 +margin_bottom = 128.0 +rect_min_size = Vector2( 128, 128 ) +rect_pivot_offset = Vector2( 64, 64 ) +custom_styles/panel = SubResource( 2 ) +script = ExtResource( 1 ) + +[node name="slotshape" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="slotshape"] +position = Vector2( 64, 64 ) +shape = SubResource( 3 ) + +[connection signal="area_entered" from="slotshape" to="." method="_on_slotshape_area_entered"] diff --git a/Objects/Spawner.gd b/Objects/Spawner.gd new file mode 100644 index 0000000..c3c5c91 --- /dev/null +++ b/Objects/Spawner.gd @@ -0,0 +1,47 @@ +extends Panel + +var enemy_pre = preload("res://Objects/Entity.tscn") +var item_pre = preload("res://Objects/item.tscn") +var enemy = null +var item = null +var e_speed = 50 +var e_life = 2 +var spawn_rate = 4 +var rng = RandomNumberGenerator.new() +var Time = 0 + +# Called when the node enters the scene tree for the first time. +func _ready(): + rng.randomize() + if rng.randi_range(0, spawn_rate) == 0: + enemy = enemy_pre.instance() + add_child(enemy) + var Progressbars = get_tree().get_nodes_in_group("XP") + for Progressbar in Progressbars: + Progressbar.connect("full_bar", self, "set_spawn_values") + pass + +func _process(delta): + Time += delta + if Time > 3.5: + rng.randomize() + if rng.randi_range(0, spawn_rate) == 0: + if rng.randi_range(0, 10) != 0: + enemy = enemy_pre.instance() + enemy.speed = e_speed + enemy.life = e_life + add_child(enemy) + else: + item = item_pre.instance() + item.speed = e_speed + add_child(item) + Time = 0 + + + +func set_spawn_values(value): + e_speed += value + e_life *= 2 + if (spawn_rate > 2): + spawn_rate -= 1 + pass diff --git a/Objects/bullet_hit.tscn b/Objects/bullet_hit.tscn new file mode 100644 index 0000000..12562c6 --- /dev/null +++ b/Objects/bullet_hit.tscn @@ -0,0 +1,88 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://assets/Tank Town V2.png" type="Texture" id=1] + +[sub_resource type="GDScript" id=3] +script/source = "extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func play(): + $AnimationPlayer.play(\"Hit\") + pass + +func _on_AnimationPlayer_animation_finished(anim_name): + queue_free() + pass # Replace with function body. +" + +[sub_resource type="Animation" id=1] +resource_name = "Hit" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 70, 75 ] +} + +[sub_resource type="Animation" id=2] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("AnimationPlayer:reset_on_save") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:frame") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 70 ] +} + +[node name="bullet_hit" type="Node2D"] +script = SubResource( 3 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 2, 2 ) +texture = ExtResource( 1 ) +hframes = 10 +vframes = 12 +frame = 70 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/Hit = SubResource( 1 ) +anims/RESET = SubResource( 2 ) + +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] diff --git a/Objects/item.tscn b/Objects/item.tscn new file mode 100644 index 0000000..63abcfc --- /dev/null +++ b/Objects/item.tscn @@ -0,0 +1,72 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://assets/Tank Town V2.png" type="Texture" id=1] + +[sub_resource type="GDScript" id=1] +script/source = "extends KinematicBody2D + +var pre_bullet_hit = preload(\"res://Objects/bullet_hit.tscn\") +var velocity = Vector2(0,1) +var speed = 50 +var life = 1 +var rng = RandomNumberGenerator.new() + +signal on_Death +signal badget + +# Called when the node enters the scene tree for the first time. +func _ready(): + rng.randomize() + var Progressbars = get_tree().get_nodes_in_group(\"XP\") + for Progressbar in Progressbars: + self.connect(\"on_Death\",Progressbar, \"on_Death_listed\") + var GameNode = find_parent(\"Game\") + connect(\"badget\", GameNode, \"_enable_Panzer\") + pass # Replace with function body. + +func _physics_process(delta): + move_and_collide(velocity.normalized() * delta * speed) + pass + + +func _on_Area2D_area_entered(area): + var value = 1 + var bullet_hit = pre_bullet_hit.instance() + var GameNode = find_parent(\"Game\") + if area.is_in_group(\"Bullet\"): + var Bullet = area.get_parent() + GameNode.add_child(bullet_hit) + bullet_hit.global_position = Bullet.global_position + bullet_hit.play() + emit_signal(\"on_Death\", value) + emit_signal(\"badget\", value) + queue_free() + pass # Replace with function body. +" + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 7, 7 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 7.83333, 7.83333 ) + +[node name="Item" type="KinematicBody2D"] +position = Vector2( 64, 64 ) +scale = Vector2( 8, 8 ) +script = SubResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 3 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) +hframes = 10 +vframes = 12 +frame = 48 + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource( 2 ) + +[connection signal="area_entered" from="Area2D" to="." method="_on_Area2D_area_entered"] diff --git a/Panzer.tscn b/Panzer.tscn deleted file mode 100644 index 3556e79..0000000 --- a/Panzer.tscn +++ /dev/null @@ -1,51 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://assets/Tank Town V2.png" type="Texture" id=1] - -[sub_resource type="GDScript" id=1] -script/source = "extends Node2D - -var Time = 0 -const bulletPath = preload(\"res://Bullet.tscn\") -var speed = 2.5 -onready var GameNode - -func _ready(): - GameNode = find_parent(\"Game\") - GameNode.connect(\"speed_shoot\", self, \"set_shoot_speed\") - pass - -func _process(delta): - Time += delta - if Time > speed and get_parent() != GameNode: #wenn er nicht gehoben wird dann: - shoot() - Time = 0 - pass - -func shoot(): - var bullet = bulletPath.instance() - find_parent(\"Game\").add_child(bullet) - bullet.position = $Position2D.global_position - -func set_shoot_speed(value): - if speed != 0.5: - speed -= value - print(speed) - pass -" - -[node name="ShooterObject" type="Node2D"] -position = Vector2( 64, 64 ) -scale = Vector2( 2, 2 ) -z_index = 1 -script = SubResource( 1 ) - -[node name="Sprite" type="Sprite" parent="."] -scale = Vector2( 3, 3 ) -z_index = 1 -texture = ExtResource( 1 ) -region_enabled = true -region_rect = Rect2( 0, 48, 16, 16 ) - -[node name="Position2D" type="Position2D" parent="."] -position = Vector2( 0.5, -28 ) diff --git a/Slot.gd b/Slot.gd deleted file mode 100644 index 6044837..0000000 --- a/Slot.gd +++ /dev/null @@ -1,24 +0,0 @@ -extends Panel - -var PanzerType = preload("res://Panzer.tscn") -var Panzer = null - -func _ready(): - if randi() % 2 == 0: - Panzer = PanzerType.instance() - add_child(Panzer) - - -func pickFromSlot(): - remove_child(Panzer) - var GameNode = find_parent("Game") - GameNode.add_child(Panzer) - Panzer = null - -func putIntoSlot(new_panzer): - Panzer = new_panzer - Panzer.position = Vector2(64, 64) - var GameNode = find_parent("Game") - GameNode.remove_child(Panzer) - add_child(Panzer) - diff --git a/Spawner.gd b/Spawner.gd deleted file mode 100644 index 5cb744b..0000000 --- a/Spawner.gd +++ /dev/null @@ -1,24 +0,0 @@ -extends Panel - -var enemy_pre = preload("res://Entity.tscn") -var enemy = null -var e_speed = 50 -var e_life = 2 -var Time = 0 - -# Called when the node enters the scene tree for the first time. -func _ready(): - if randi() % 2 == 0: - enemy = enemy_pre.instance() - add_child(enemy) - pass - -func _process(delta): - Time += delta - if Time > 3.5: - if randi() % 2 == 0: - enemy = enemy_pre.instance() - enemy.speed = e_speed - enemy.life = e_life - add_child(enemy) - Time = 0 diff --git a/export_presets.cfg b/export_presets.cfg index ba455ff..854b42d 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -40,3 +40,209 @@ application/product_name="" application/file_description="" application/copyright="" application/trademarks="" + +[preset.1] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="Export/Game.apk" +script_export_mode=1 +script_encryption_key="" + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +custom_build/use_custom_build=false +custom_build/export_format=0 +custom_build/min_sdk="" +custom_build/target_sdk="" +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +keystore/debug="" +keystore/debug_user="" +keystore/debug_password="" +keystore/release="E:/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.9014738/jre/bin/mygame.keystore" +keystore/release_user="mygame" +keystore/release_password="Hopper7204" +one_click_deploy/clear_previous_install=false +version/code=1 +version/name="1.0" +package/unique_name="org.godotengine.$genname" +package/name="" +package/signed=true +package/classify_as_game=true +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +xr_features/hand_tracking=0 +xr_features/hand_tracking_frequency=0 +xr_features/passthrough=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=false +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PoolStringArray( ) +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false diff --git a/project.godot b/project.godot index 6b010da..1367d78 100644 --- a/project.godot +++ b/project.godot @@ -70,7 +70,7 @@ config={ [application] config/name="2048 shooter" -run/main_scene="res://Game.tscn" +run/main_scene="res://Main Scenes/MainMenu.tscn" config/icon="res://icon.png" [autoload] @@ -83,7 +83,7 @@ window/size/width=576 window/size/height=1200 window/handheld/orientation="portrait" window/stretch/mode="2d" -window/stretch/aspect="keep_width" +window/stretch/aspect="keep_height" [editor_plugins] @@ -117,6 +117,10 @@ texture={ "svg/scale": 1.0 } +[input_devices] + +pointing/emulate_touch_from_mouse=true + [physics] common/enable_pause_aware_picking=true