diff --git a/src/global.gd b/src/global.gd index f676b7b..d0c1555 100644 --- a/src/global.gd +++ b/src/global.gd @@ -1,3 +1,12 @@ extends Node -var game_scene = preload("res://src/scenes/game/Game.tscn") +var GAME_SCENE = preload("res://src/scenes/game/Game.tscn") + +var playing = true +var health = 0 + +func add_health(amount): + health = clamp(health + amount, 0, 3) + emit_signal("health_update") + if health == 0: + pass # TODO endgame diff --git a/src/models/player/Player.tscn b/src/models/player/Player.tscn index 6ae7ba3..be57bcd 100644 --- a/src/models/player/Player.tscn +++ b/src/models/player/Player.tscn @@ -1,9 +1,12 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://src/models/player/sprite.png" type="Texture" id=1] [ext_resource path="res://src/models/player/player.gd" type="Script" id=2] [sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 4.5, 6 ) + +[sub_resource type="RectangleShape2D" id=2] extents = Vector2( 7, 11 ) [node name="Player" type="KinematicBody2D"] @@ -13,6 +16,12 @@ script = ExtResource( 2 ) texture = ExtResource( 1 ) centered = false -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2( 12, 12 ) +[node name="WallCollider" type="CollisionShape2D" parent="."] +position = Vector2( 12.5, 17 ) shape = SubResource( 1 ) + +[node name="EnemyCollider" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="EnemyCollider"] +position = Vector2( 12, 12 ) +shape = SubResource( 2 ) diff --git a/src/models/player/player.gd b/src/models/player/player.gd index 0fc2b9e..b990357 100644 --- a/src/models/player/player.gd +++ b/src/models/player/player.gd @@ -7,6 +7,6 @@ func get_input(): var input_direction = Input.get_vector("left", "right", "up", "down") velocity = input_direction * speed -func _physics_process(delta): +func _physics_process(_delta): get_input() - move_and_slide(velocity) + velocity = move_and_slide(velocity) diff --git a/src/scenes/game/Game.tscn b/src/scenes/game/Game.tscn index 29d6fa7..89e0d4a 100644 --- a/src/scenes/game/Game.tscn +++ b/src/scenes/game/Game.tscn @@ -17,6 +17,14 @@ extents = Vector2( 140, 10.25 ) size = 8 font_data = ExtResource( 4 ) +[sub_resource type="SpriteFrames" id=4] +animations = [ { +"frames": [ ExtResource( 9 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 6 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + [node name="Game" type="Node"] [node name="View" type="Node2D" parent="."] @@ -79,3 +87,12 @@ margin_right = 79.0 margin_bottom = 7.0 custom_fonts/font = SubResource( 1 ) text = "spell modifiers" + +[node name="Health" type="Control" parent="UI"] +margin_right = 40.0 +margin_bottom = 40.0 + +[node name="AnimatedSprite" type="AnimatedSprite" parent="UI/Health"] +position = Vector2( 70, 145 ) +frames = SubResource( 4 ) +centered = false diff --git a/src/scenes/game/sprites/health/0.png b/src/scenes/game/sprites/health/0.png new file mode 100644 index 0000000..cea72d7 Binary files /dev/null and b/src/scenes/game/sprites/health/0.png differ diff --git a/src/scenes/game/sprites/health/0.png.import b/src/scenes/game/sprites/health/0.png.import new file mode 100644 index 0000000..07dc339 --- /dev/null +++ b/src/scenes/game/sprites/health/0.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/0.png-02c85cf70c99d3d8411f3ce28c6dff74.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/scenes/game/sprites/health/0.png" +dest_files=[ "res://.import/0.png-02c85cf70c99d3d8411f3ce28c6dff74.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/src/scenes/game/sprites/health/1.png b/src/scenes/game/sprites/health/1.png new file mode 100644 index 0000000..f3a9542 Binary files /dev/null and b/src/scenes/game/sprites/health/1.png differ diff --git a/src/scenes/game/sprites/health/1.png.import b/src/scenes/game/sprites/health/1.png.import new file mode 100644 index 0000000..ec3fc65 --- /dev/null +++ b/src/scenes/game/sprites/health/1.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/1.png-047cc618dec88d280c194537c3a6f7ff.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/scenes/game/sprites/health/1.png" +dest_files=[ "res://.import/1.png-047cc618dec88d280c194537c3a6f7ff.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/scenes/game/sprites/health/2.png b/src/scenes/game/sprites/health/2.png new file mode 100644 index 0000000..7f6fb95 Binary files /dev/null and b/src/scenes/game/sprites/health/2.png differ diff --git a/src/scenes/game/sprites/health/2.png.import b/src/scenes/game/sprites/health/2.png.import new file mode 100644 index 0000000..156377f --- /dev/null +++ b/src/scenes/game/sprites/health/2.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/2.png-7a1d2df16559ebcf67438a13aec9cf5d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/scenes/game/sprites/health/2.png" +dest_files=[ "res://.import/2.png-7a1d2df16559ebcf67438a13aec9cf5d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/scenes/game/sprites/health/3.png b/src/scenes/game/sprites/health/3.png new file mode 100644 index 0000000..2ef2f2b Binary files /dev/null and b/src/scenes/game/sprites/health/3.png differ diff --git a/src/scenes/game/sprites/health/3.png.import b/src/scenes/game/sprites/health/3.png.import new file mode 100644 index 0000000..5be0b8a --- /dev/null +++ b/src/scenes/game/sprites/health/3.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/3.png-cf9102fa2f0f8d9abb6f2ada3be84162.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://src/scenes/game/sprites/health/3.png" +dest_files=[ "res://.import/3.png-cf9102fa2f0f8d9abb6f2ada3be84162.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/src/scenes/menu/menu.gd b/src/scenes/menu/menu.gd index e2139dc..6ea9112 100644 --- a/src/scenes/menu/menu.gd +++ b/src/scenes/menu/menu.gd @@ -1,7 +1,7 @@ extends Node func game_start(): - get_tree().change_scene_to(Global.game_scene) + get_tree().change_scene_to(Global.GAME_SCENE) func game_exit(): get_tree().quit(0)