Compare commits

...

3 Commits

Author SHA1 Message Date
Your Name
8881f442bb character is now running on screen 2025-07-20 18:54:24 +04:00
Your Name
e9761aa162 Hero assets added 2025-07-20 18:51:35 +04:00
Your Name
66de2a1710 controls added 2025-07-20 18:50:58 +04:00
41 changed files with 1153 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qp2jk4w41r6y"
path="res://.godot/imported/attack1_down.png-b70bf2e53928612487923b136463083b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 1/attack1_down.png"
dest_files=["res://.godot/imported/attack1_down.png-b70bf2e53928612487923b136463083b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cpof32ag5c825"
path="res://.godot/imported/attack1_left.png-d6ae5f8093ae75c98a8bb373f11338c5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 1/attack1_left.png"
dest_files=["res://.godot/imported/attack1_left.png-d6ae5f8093ae75c98a8bb373f11338c5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://sbs1him0q10k"
path="res://.godot/imported/attack1_right.png-02951fbee1fbdd749f7456e9f567cfc8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 1/attack1_right.png"
dest_files=["res://.godot/imported/attack1_right.png-02951fbee1fbdd749f7456e9f567cfc8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ohvv7upxg56s"
path="res://.godot/imported/attack1_up.png-c3b28d552a4103b73d0f5ef629adb6df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 1/attack1_up.png"
dest_files=["res://.godot/imported/attack1_up.png-c3b28d552a4103b73d0f5ef629adb6df.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://feb10geiluq5"
path="res://.godot/imported/attack2_down.png-a267b420875df4f3ba38080e87a192b1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 2/attack2_down.png"
dest_files=["res://.godot/imported/attack2_down.png-a267b420875df4f3ba38080e87a192b1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wtpvtxn4lwuw"
path="res://.godot/imported/attack2_left.png-e55564bea3c81b2804f969b673509a16.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 2/attack2_left.png"
dest_files=["res://.godot/imported/attack2_left.png-e55564bea3c81b2804f969b673509a16.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdey3cqp47fao"
path="res://.godot/imported/attack2_right.png-842fb1e82239f879e2912cbf9c8ed4e3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 2/attack2_right.png"
dest_files=["res://.godot/imported/attack2_right.png-842fb1e82239f879e2912cbf9c8ed4e3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0jmqpasov5a4"
path="res://.godot/imported/attack2_up.png-a4e2c3e1441525efdc7e84dcd1705145.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/ATTACK 2/attack2_up.png"
dest_files=["res://.godot/imported/attack2_up.png-a4e2c3e1441525efdc7e84dcd1705145.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcmhtymn7nmta"
path="res://.godot/imported/idle_down.png-54651041b25f7ee533d7a8b03fc698ad.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/IDLE/idle_down.png"
dest_files=["res://.godot/imported/idle_down.png-54651041b25f7ee533d7a8b03fc698ad.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2pfov82738xo"
path="res://.godot/imported/idle_left.png-dfd1a56b6d75990f3ae1a099e61f566e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/IDLE/idle_left.png"
dest_files=["res://.godot/imported/idle_left.png-dfd1a56b6d75990f3ae1a099e61f566e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0d02ok6v7esf"
path="res://.godot/imported/idle_right.png-7ddab363823cf2780a69a13aba445ea9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/IDLE/idle_right.png"
dest_files=["res://.godot/imported/idle_right.png-7ddab363823cf2780a69a13aba445ea9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dnhopng8ws1lo"
path="res://.godot/imported/idle_up.png-673dce19bcb196068eed1c317ddea503.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/IDLE/idle_up.png"
dest_files=["res://.godot/imported/idle_up.png-673dce19bcb196068eed1c317ddea503.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fcm6d22eb6dv"
path="res://.godot/imported/run_down.png-e6e0787e05cfffbe1e2a175969e1bd5b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/RUN/run_down.png"
dest_files=["res://.godot/imported/run_down.png-e6e0787e05cfffbe1e2a175969e1bd5b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cim03822crp33"
path="res://.godot/imported/run_left.png-31fcb61e2cd45f95f4b0dd53630a11f8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/RUN/run_left.png"
dest_files=["res://.godot/imported/run_left.png-31fcb61e2cd45f95f4b0dd53630a11f8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b8ib42gdqbyko"
path="res://.godot/imported/run_right.png-8810fc783dba0acf1912fc84db1f5b13.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/RUN/run_right.png"
dest_files=["res://.godot/imported/run_right.png-8810fc783dba0acf1912fc84db1f5b13.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
assets/Hero/RUN/run_up.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bnl11lwoesv5q"
path="res://.godot/imported/run_up.png-c7f3d4b289e9a67c498b4a41dbd1b725.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/Hero/RUN/run_up.png"
dest_files=["res://.godot/imported/run_up.png-c7f3d4b289e9a67c498b4a41dbd1b725.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -43,6 +43,39 @@ ui_menu_toggle={
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
] ]
} }
move_up={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
move_down={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
move_left={
"deadzone": 0.2,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.2,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
mouse_click={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(360, 13),"global_position":Vector2(369, 61),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[internationalization] [internationalization]

11
scenes/Game_Scene.tscn Normal file
View File

@@ -0,0 +1,11 @@
[gd_scene load_steps=4 format=3 uid="uid://bkgu1a3lnxnui"]
[ext_resource type="Script" uid="uid://sjgbdq7xije" path="res://scenes/game_scene.gd" id="1_xv2b7"]
[ext_resource type="PackedScene" uid="uid://bojb35864qt8e" path="res://scenes/hero.tscn" id="1_xv4of"]
[ext_resource type="Script" uid="uid://coqdjfhn4plph" path="res://scripts/characters/player.gd" id="2_xv2b7"]
[node name="GameScene" type="Node"]
script = ExtResource("1_xv2b7")
[node name="Hero" parent="." instance=ExtResource("1_xv4of")]
script = ExtResource("2_xv2b7")

10
scenes/game_scene.gd Normal file
View File

@@ -0,0 +1,10 @@
extends Node
signal open_game
func _ready() -> void:
print("Game scene ready")
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

1
scenes/game_scene.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://sjgbdq7xije

502
scenes/hero.tscn Normal file
View File

@@ -0,0 +1,502 @@
[gd_scene load_steps=73 format=3 uid="uid://bojb35864qt8e"]
[ext_resource type="Texture2D" uid="uid://dcmhtymn7nmta" path="res://assets/Hero/IDLE/idle_down.png" id="1_n40cg"]
[ext_resource type="Texture2D" uid="uid://b2pfov82738xo" path="res://assets/Hero/IDLE/idle_left.png" id="2_txblw"]
[ext_resource type="Texture2D" uid="uid://d0d02ok6v7esf" path="res://assets/Hero/IDLE/idle_right.png" id="3_n5qna"]
[ext_resource type="Texture2D" uid="uid://dnhopng8ws1lo" path="res://assets/Hero/IDLE/idle_up.png" id="4_d6xj2"]
[ext_resource type="Texture2D" uid="uid://fcm6d22eb6dv" path="res://assets/Hero/RUN/run_down.png" id="5_sryfu"]
[ext_resource type="Texture2D" uid="uid://cim03822crp33" path="res://assets/Hero/RUN/run_left.png" id="6_6mqrs"]
[ext_resource type="Texture2D" uid="uid://b8ib42gdqbyko" path="res://assets/Hero/RUN/run_right.png" id="7_k8rms"]
[ext_resource type="Texture2D" uid="uid://bnl11lwoesv5q" path="res://assets/Hero/RUN/run_up.png" id="8_lunib"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2grt1"]
atlas = ExtResource("1_n40cg")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_wynkb"]
atlas = ExtResource("1_n40cg")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_fuux7"]
atlas = ExtResource("1_n40cg")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_8m75t"]
atlas = ExtResource("1_n40cg")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_rvoeo"]
atlas = ExtResource("1_n40cg")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_syei6"]
atlas = ExtResource("1_n40cg")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_85qs6"]
atlas = ExtResource("1_n40cg")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_wc88v"]
atlas = ExtResource("1_n40cg")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_kt0c4"]
atlas = ExtResource("2_txblw")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_rpah5"]
atlas = ExtResource("2_txblw")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_4kg8r"]
atlas = ExtResource("2_txblw")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_4ul70"]
atlas = ExtResource("2_txblw")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_61g13"]
atlas = ExtResource("2_txblw")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_7l7r2"]
atlas = ExtResource("2_txblw")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_nh6g3"]
atlas = ExtResource("2_txblw")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_8v78m"]
atlas = ExtResource("2_txblw")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_48qaf"]
atlas = ExtResource("3_n5qna")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_delsk"]
atlas = ExtResource("3_n5qna")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_158md"]
atlas = ExtResource("3_n5qna")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_j0f64"]
atlas = ExtResource("3_n5qna")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_akksl"]
atlas = ExtResource("3_n5qna")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_u7rdq"]
atlas = ExtResource("3_n5qna")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_pku1t"]
atlas = ExtResource("3_n5qna")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_fd06a"]
atlas = ExtResource("3_n5qna")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_dvtb3"]
atlas = ExtResource("4_d6xj2")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_u7y3v"]
atlas = ExtResource("4_d6xj2")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_u7ksq"]
atlas = ExtResource("4_d6xj2")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_lyirt"]
atlas = ExtResource("4_d6xj2")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_pasmt"]
atlas = ExtResource("4_d6xj2")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_tsxnk"]
atlas = ExtResource("4_d6xj2")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_6xrt3"]
atlas = ExtResource("4_d6xj2")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_54d4v"]
atlas = ExtResource("4_d6xj2")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_m72ym"]
atlas = ExtResource("5_sryfu")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_5e70t"]
atlas = ExtResource("5_sryfu")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_5dxqo"]
atlas = ExtResource("5_sryfu")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_4v2qv"]
atlas = ExtResource("5_sryfu")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_05r1h"]
atlas = ExtResource("5_sryfu")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_i8in1"]
atlas = ExtResource("5_sryfu")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_hn7jl"]
atlas = ExtResource("5_sryfu")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_jjdmo"]
atlas = ExtResource("5_sryfu")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_ffar2"]
atlas = ExtResource("6_6mqrs")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_t0jj8"]
atlas = ExtResource("6_6mqrs")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_bjjcb"]
atlas = ExtResource("6_6mqrs")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_1ktsb"]
atlas = ExtResource("6_6mqrs")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_5gu81"]
atlas = ExtResource("6_6mqrs")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_ps45g"]
atlas = ExtResource("6_6mqrs")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_fbll3"]
atlas = ExtResource("6_6mqrs")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_aw3ld"]
atlas = ExtResource("6_6mqrs")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_pfjxo"]
atlas = ExtResource("7_k8rms")
region = Rect2(0, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_lrikj"]
atlas = ExtResource("7_k8rms")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_rx3em"]
atlas = ExtResource("7_k8rms")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_se6mv"]
atlas = ExtResource("7_k8rms")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_qvhjw"]
atlas = ExtResource("7_k8rms")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_12dr8"]
atlas = ExtResource("7_k8rms")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_ov74w"]
atlas = ExtResource("7_k8rms")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_d0tjj"]
atlas = ExtResource("7_k8rms")
region = Rect2(672, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_dh4be"]
atlas = ExtResource("8_lunib")
region = Rect2(96, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_a8lnc"]
atlas = ExtResource("8_lunib")
region = Rect2(192, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_jniie"]
atlas = ExtResource("8_lunib")
region = Rect2(288, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_d88lm"]
atlas = ExtResource("8_lunib")
region = Rect2(384, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_mpkdo"]
atlas = ExtResource("8_lunib")
region = Rect2(480, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_oayr2"]
atlas = ExtResource("8_lunib")
region = Rect2(576, 0, 96, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_p0r7a"]
atlas = ExtResource("8_lunib")
region = Rect2(672, 0, 96, 80)
[sub_resource type="SpriteFrames" id="SpriteFrames_6biqx"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_2grt1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wynkb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fuux7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8m75t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rvoeo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_syei6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_85qs6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wc88v")
}],
"loop": true,
"name": &"IdleDown",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_kt0c4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rpah5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4kg8r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4ul70")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_61g13")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7l7r2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nh6g3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8v78m")
}],
"loop": true,
"name": &"IdleLeft",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_48qaf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_delsk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_158md")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j0f64")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_akksl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u7rdq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pku1t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fd06a")
}],
"loop": true,
"name": &"IdleRight",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dvtb3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u7y3v")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_u7ksq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lyirt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pasmt")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tsxnk")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6xrt3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_54d4v")
}],
"loop": true,
"name": &"IdleUp",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_m72ym")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5e70t")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5dxqo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4v2qv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_05r1h")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i8in1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hn7jl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jjdmo")
}],
"loop": true,
"name": &"RunDown",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ffar2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t0jj8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bjjcb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1ktsb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5gu81")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ps45g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fbll3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aw3ld")
}],
"loop": true,
"name": &"RunLeft",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pfjxo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lrikj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rx3em")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_se6mv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qvhjw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_12dr8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ov74w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d0tjj")
}],
"loop": true,
"name": &"RunRight",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dh4be")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_a8lnc")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jniie")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_d88lm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mpkdo")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_oayr2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_p0r7a")
}],
"loop": true,
"name": &"RunUp",
"speed": 5.0
}]
[node name="Hero" type="CharacterBody2D"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_6biqx")
animation = &"RunUp"

View File

@@ -12,10 +12,18 @@ func _on_any_key_pressed():
press_any_key_screen.queue_free() press_any_key_screen.queue_free()
show_main_menu() show_main_menu()
func show_game():
print("Starting game scene")
clear_current_menu()
var game_scene = preload("res://scenes/Game_Scene.tscn").instantiate()
add_child(game_scene)
current_menu = game_scene
func show_main_menu(): func show_main_menu():
clear_current_menu() clear_current_menu()
var main_menu = preload("res://ui/MainMenu.tscn").instantiate() var main_menu = preload("res://ui/MainMenu.tscn").instantiate()
main_menu.open_settings.connect(_on_open_settings) main_menu.open_settings.connect(_on_open_settings)
main_menu.open_game.connect(_on_open_game)
add_child(main_menu) add_child(main_menu)
current_menu = main_menu current_menu = main_menu
@@ -31,6 +39,10 @@ func clear_current_menu():
current_menu.queue_free() current_menu.queue_free()
current_menu = null current_menu = null
func _on_open_game():
print("Starting new game")
show_game()
func _on_open_settings(): func _on_open_settings():
print("Opening settings menu") print("Opening settings menu")
show_settings_menu() show_settings_menu()

View File

@@ -1,12 +1,14 @@
extends Control extends Control
signal open_settings signal open_settings
signal open_game
func _ready(): func _ready():
print("MainMenu ready") print("MainMenu ready")
func _on_new_game_button_pressed(): func _on_new_game_button_pressed():
print("New Game pressed") print("New Game pressed")
open_game.emit()
func _on_settings_button_pressed(): func _on_settings_button_pressed():
print("Settings pressed") print("Settings pressed")

View File

@@ -0,0 +1,37 @@
extends CharacterBody2D
const SPEED = 300.0
const JUMP_VELOCITY = -400.0
var last_direction = Vector2.DOWN
func get_input():
var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down")
velocity = input_direction * SPEED
return input_direction
func _physics_process(delta: float) -> void:
print(get_input())
move_and_slide()
func _process(delta: float) -> void:
if not $AnimatedSprite2D:
return
var input_direction = get_input()
var animation_name = ""
if input_direction != Vector2.ZERO:
last_direction = input_direction
# Determine dominant direction and build animation name
if abs(input_direction.x) > abs(input_direction.y):
animation_name = "Run" + ("Right" if input_direction.x > 0 else "Left")
else:
animation_name = "Run" + ("Down" if input_direction.y > 0 else "Up")
else:
# Use last direction for idle
if abs(last_direction.x) > abs(last_direction.y):
animation_name = "Idle" + ("Right" if last_direction.x > 0 else "Left")
else:
animation_name = "Idle" + ("Down" if last_direction.y > 0 else "Up")
$AnimatedSprite2D.play(animation_name)

View File

@@ -0,0 +1 @@
uid://coqdjfhn4plph