diff --git a/project.godot b/project.godot index e759724..61c5cb7 100644 --- a/project.godot +++ b/project.godot @@ -8,6 +8,16 @@ config_version=4 +_global_script_classes=[ { +"base": "EditorVCSInterface", +"class": "GitAPI", +"language": "NativeScript", +"path": "res://addons/godot-git-plugin/git_api.gdns" +} ] +_global_script_class_icons={ +"GitAPI": "" +} + [application] config/name="LD54" @@ -38,7 +48,7 @@ version_control_plugin_name="GitAPI" [gdnative] -singletons=[ ] +singletons=[ "res://addons/godot-git-plugin/git_api.gdnlib" ] [global] diff --git a/src/models/enemies/trash_can/TrashCan.tscn b/src/models/enemies/trash_can/TrashCan.tscn new file mode 100644 index 0000000..5003d5d --- /dev/null +++ b/src/models/enemies/trash_can/TrashCan.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://icon.png" type="Texture" id=1] +[ext_resource path="res://src/models/enemies/trash_can/trash_can.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 8, 8.5 ) + +[node name="TrashCan" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.25, 0.25 ) +texture = ExtResource( 1 ) +centered = false + +[node name="EnemyCollider" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyCollider"] +position = Vector2( 8, 8.5 ) +shape = SubResource( 1 ) diff --git a/src/models/enemies/trash_can/drop/TrashDrop.tscn b/src/models/enemies/trash_can/drop/TrashDrop.tscn new file mode 100644 index 0000000..05b9885 --- /dev/null +++ b/src/models/enemies/trash_can/drop/TrashDrop.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 6, 6 ) + +[node name="TrashDrop" type="StaticBody2D"] + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2( 6, 6 ) +shape = SubResource( 1 ) diff --git a/src/models/enemies/trash_can/trash_can.gd b/src/models/enemies/trash_can/trash_can.gd new file mode 100644 index 0000000..d694bca --- /dev/null +++ b/src/models/enemies/trash_can/trash_can.gd @@ -0,0 +1,48 @@ +extends KinematicBody2D + +var movement_type # horizontal or vertical +var movement_start # top left or right +var velocity + +var start_timer = .0 +var drop_timer = .0 + +var horizontal_speed = 160 +var vertical_speed = 60 + +func _ready(): + randomize() + movement_type = ["horizontal", "vertical"][randi()%2] + if movement_type == "vertical": + movement_start = "top" + global_position.x = randi()&268 + 20 # 320 - 12 - 20 + global_position.y = -20 + else: + movement_start = ["left", "right"][randi()%2] + global_position.y = randi()%60 + 20 + global_position.x = 360 if movement_start == "right" else -20 + +func drop_trash(): + pass + +func _physics_process(delta): + if start_timer < 2: + start_timer += delta + return + + drop_timer += delta + + if drop_timer > .5: + drop_timer = 0 + drop_trash() + + velocity = Vector2.ZERO + if movement_type == "horizontal": + if movement_start == "left": + velocity.x += horizontal_speed + else: + velocity.x -= horizontal_speed + else: + velocity.y += vertical_speed + + velocity = move_and_slide(velocity) diff --git a/src/models/player/player.gd b/src/models/player/player.gd index b990357..368bd6e 100644 --- a/src/models/player/player.gd +++ b/src/models/player/player.gd @@ -1,7 +1,7 @@ extends KinematicBody2D var velocity = Vector2.ZERO -var speed = 120 +var speed = 100 func get_input(): var input_direction = Input.get_vector("left", "right", "up", "down") diff --git a/src/scenes/game/Game.tscn b/src/scenes/game/Game.tscn index f417486..496c123 100644 --- a/src/scenes/game/Game.tscn +++ b/src/scenes/game/Game.tscn @@ -1,13 +1,17 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://src/scenes/menu/background/background.png" type="Texture" id=1] [ext_resource path="res://src/scenes/game/sprites/background_houses.png" type="Texture" id=2] [ext_resource path="res://src/scenes/game/spell_holder.gd" type="Script" id=3] [ext_resource path="res://res/fonts/silkscreen/Silkscreen-Regular.ttf" type="DynamicFontData" id=4] [ext_resource path="res://src/models/player/Player.tscn" type="PackedScene" id=5] -[ext_resource path="res://src/scenes/game/sprites/ui_background.png" type="Texture" id=6] +[ext_resource path="res://src/scenes/game/sprites/health/3.png" type="Texture" id=6] +[ext_resource path="res://src/scenes/game/sprites/health/1.png" type="Texture" id=7] +[ext_resource path="res://src/scenes/game/sprites/health/2.png" type="Texture" id=8] +[ext_resource path="res://src/scenes/game/sprites/health/0.png" type="Texture" id=9] [ext_resource path="res://icon.png" type="Texture" id=10] [ext_resource path="res://src/scenes/game/game.gd" type="Script" id=11] +[ext_resource path="res://src/scenes/game/sprites/ui_background.png" type="Texture" id=12] [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 10, 60 ) @@ -21,7 +25,7 @@ font_data = ExtResource( 4 ) [sub_resource type="SpriteFrames" id=4] animations = [ { -"frames": [ null, null, null, null ], +"frames": [ ExtResource( 9 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 6 ) ], "loop": true, "name": "default", "speed": 5.0 @@ -69,11 +73,11 @@ position = Vector2( 46, 42 ) margin_right = 40.0 margin_bottom = 40.0 -[node name="UIBackground" type="TextureRect" parent="UI"] +[node name="Background" type="TextureRect" parent="UI"] margin_top = 120.0 margin_right = 320.0 margin_bottom = 180.0 -texture = ExtResource( 6 ) +texture = ExtResource( 12 ) expand = true [node name="SpellHolder" type="Control" parent="UI"]