diff --git a/dariusgodotproject/assets/graphics/destructables/crate.png b/dariusgodotproject/assets/graphics/destructables/crate.png new file mode 100644 index 0000000..2b8bdcd Binary files /dev/null and b/dariusgodotproject/assets/graphics/destructables/crate.png differ diff --git a/dariusgodotproject/assets/graphics/destructables/crate.png.import b/dariusgodotproject/assets/graphics/destructables/crate.png.import new file mode 100644 index 0000000..3ca4c53 --- /dev/null +++ b/dariusgodotproject/assets/graphics/destructables/crate.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0fqd8r8n4ptj" +path="res://.godot/imported/crate.png-91961d6f3a0764bc8758ad055606c6d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/destructables/crate.png" +dest_files=["res://.godot/imported/crate.png-91961d6f3a0764bc8758ad055606c6d0.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 diff --git a/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png b/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png new file mode 100644 index 0000000..b618511 Binary files /dev/null and b/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png differ diff --git a/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png.import b/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png.import new file mode 100644 index 0000000..7f8ced3 --- /dev/null +++ b/dariusgodotproject/assets/graphics/player/idle/Player Idle 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2gvpgkw8np1c" +path="res://.godot/imported/Player Idle 48x48.png-9f43f14976963a2821a06ddf8579a76a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/idle/Player Idle 48x48.png" +dest_files=["res://.godot/imported/Player Idle 48x48.png-9f43f14976963a2821a06ddf8579a76a.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 diff --git a/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png b/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png new file mode 100644 index 0000000..dff105c Binary files /dev/null and b/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png differ diff --git a/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png.import b/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png.import new file mode 100644 index 0000000..b32cc21 --- /dev/null +++ b/dariusgodotproject/assets/graphics/player/jump/player jump 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctneeupm1dwsb" +path="res://.godot/imported/player jump 48x48.png-1ccba0c36041038682bf917e1f6cf991.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/jump/player jump 48x48.png" +dest_files=["res://.godot/imported/player jump 48x48.png-1ccba0c36041038682bf917e1f6cf991.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 diff --git a/dariusgodotproject/assets/graphics/player/run/player run 48x48.png b/dariusgodotproject/assets/graphics/player/run/player run 48x48.png new file mode 100644 index 0000000..aca5b55 Binary files /dev/null and b/dariusgodotproject/assets/graphics/player/run/player run 48x48.png differ diff --git a/dariusgodotproject/assets/graphics/player/run/player run 48x48.png.import b/dariusgodotproject/assets/graphics/player/run/player run 48x48.png.import new file mode 100644 index 0000000..a3dd20b --- /dev/null +++ b/dariusgodotproject/assets/graphics/player/run/player run 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccxw74sa7kyv" +path="res://.godot/imported/player run 48x48.png-6d66612d48bfa4c8721495ba557ab7c6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/player/run/player run 48x48.png" +dest_files=["res://.godot/imported/player run 48x48.png-6d66612d48bfa4c8721495ba557ab7c6.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 diff --git a/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png b/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png new file mode 100644 index 0000000..900d030 Binary files /dev/null and b/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png differ diff --git a/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png.import b/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png.import new file mode 100644 index 0000000..d01e587 --- /dev/null +++ b/dariusgodotproject/assets/graphics/projectiles/pixel_bullet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwukfncvqppye" +path="res://.godot/imported/pixel_bullet.png-30d6d1e8b5e1332f8b2e2cee72a9e790.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/projectiles/pixel_bullet.png" +dest_files=["res://.godot/imported/pixel_bullet.png-30d6d1e8b5e1332f8b2e2cee72a9e790.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 diff --git a/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png b/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png new file mode 100644 index 0000000..ddf1eaf Binary files /dev/null and b/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png differ diff --git a/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png.import b/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png.import new file mode 100644 index 0000000..ccba956 --- /dev/null +++ b/dariusgodotproject/assets/graphics/terrains/Terrain (32x32).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btdvc25chjgd" +path="res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/terrains/Terrain (32x32).png" +dest_files=["res://.godot/imported/Terrain (32x32).png-7361ca574569f6e5ff16ef11d25a8904.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 diff --git a/dariusgodotproject/project.godot b/dariusgodotproject/project.godot index 1ff3555..bb0bbac 100644 --- a/dariusgodotproject/project.godot +++ b/dariusgodotproject/project.godot @@ -15,6 +15,14 @@ run/main_scene="res://scenes/game.tscn" config/features=PackedStringArray("4.3", "Forward Plus") config/icon="res://icon.svg" +[display] + +window/size/viewport_width=320 +window/size/viewport_height=180 +window/size/window_width_override=960 +window/size/window_height_override=540 +window/stretch/mode="viewport" + [file_customization] folder_colors={ diff --git a/dariusgodotproject/scenes/bullet.tscn b/dariusgodotproject/scenes/bullet.tscn index 738f469..f29b300 100644 --- a/dariusgodotproject/scenes/bullet.tscn +++ b/dariusgodotproject/scenes/bullet.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=3 format=3 uid="uid://dwfife67i1fmr"] +[gd_scene load_steps=4 format=3 uid="uid://dwfife67i1fmr"] [ext_resource type="Script" path="res://scripts/bullet.gd" id="1_qivxv"] +[ext_resource type="Texture2D" uid="uid://dwukfncvqppye" path="res://assets/graphics/projectiles/pixel_bullet.png" id="2_a2saw"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_dp02a"] size = Vector2(16, 4) @@ -12,4 +13,11 @@ script = ExtResource("1_qivxv") shape = SubResource("RectangleShape2D_dp02a") debug_color = Color(1, 1, 0, 0.419608) +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(-5, 2) +rotation = -3.1402 +scale = Vector2(0.171023, -0.0779315) +texture = ExtResource("2_a2saw") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/dariusgodotproject/scenes/crate.tscn b/dariusgodotproject/scenes/crate.tscn index 4c5322f..1f78f9e 100644 --- a/dariusgodotproject/scenes/crate.tscn +++ b/dariusgodotproject/scenes/crate.tscn @@ -1,4 +1,6 @@ -[gd_scene load_steps=2 format=3 uid="uid://d1ej2kiy7jcpv"] +[gd_scene load_steps=3 format=3 uid="uid://d1ej2kiy7jcpv"] + +[ext_resource type="Texture2D" uid="uid://b0fqd8r8n4ptj" path="res://assets/graphics/destructables/crate.png" id="1_odabg"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ixlbc"] @@ -8,3 +10,8 @@ metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("RectangleShape2D_ixlbc") debug_color = Color(0, 0.545098, 0.0431373, 0.419608) + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +scale = Vector2(0.0947823, 0.0840096) +texture = ExtResource("1_odabg") diff --git a/dariusgodotproject/scenes/game.tscn b/dariusgodotproject/scenes/game.tscn index b8c0e98..c074148 100644 --- a/dariusgodotproject/scenes/game.tscn +++ b/dariusgodotproject/scenes/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://dcmyx5g6dksl8"] +[gd_scene load_steps=13 format=3 uid="uid://dcmyx5g6dksl8"] [ext_resource type="PackedScene" uid="uid://d1ej2kiy7jcpv" path="res://scenes/crate.tscn" id="1_uivx3"] [ext_resource type="Script" path="res://scripts/gamecontroller.gd" id="1_vhl00"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://b75mow511wmmb" path="res://scenes/player.tscn" id="3_8h5jv"] [ext_resource type="PackedScene" uid="uid://dwfife67i1fmr" path="res://scenes/bullet.tscn" id="5_7yfvg"] [ext_resource type="Script" path="res://scripts/scenemanager.gd" id="6_n2kp0"] +[ext_resource type="Texture2D" uid="uid://btdvc25chjgd" path="res://assets/graphics/terrains/Terrain (32x32).png" id="7_v20os"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_1cyeq"] size = Vector2(101, 20) @@ -15,6 +16,61 @@ distance = -395.0 [sub_resource type="CircleShape2D" id="CircleShape2D_mfh1j"] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3ut3v"] +texture = ExtResource("7_v20os") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +4:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +15:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +4:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +15:1/0 = 0 +16:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +4:2/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +12:3/0 = 0 +13:3/0 = 0 +15:3/0 = 0 +16:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +4:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +15:4/0 = 0 +16:4/0 = 0 + +[sub_resource type="TileSet" id="TileSet_ixl4j"] +tile_size = Vector2i(32, 32) +sources/0 = SubResource("TileSetAtlasSource_3ut3v") + [node name="Game" type="Node2D"] script = ExtResource("1_vhl00") @@ -26,22 +82,6 @@ metadata/_edit_group_ = true position = Vector2(-0.5, 0) shape = SubResource("RectangleShape2D_1cyeq") -[node name="RigidBody2D" parent="." instance=ExtResource("1_uivx3")] -position = Vector2(640, 228) -rotation = 0.806532 - -[node name="RigidBody2D2" parent="." instance=ExtResource("1_uivx3")] -position = Vector2(586, 297) -rotation = 0.806532 - -[node name="RigidBody2D3" parent="." instance=ExtResource("1_uivx3")] -position = Vector2(636, 279) -rotation = 0.806532 - -[node name="RigidBody2D4" parent="." instance=ExtResource("1_uivx3")] -position = Vector2(596, 225) -rotation = 0.806532 - [node name="floor" type="StaticBody2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="floor"] @@ -66,5 +106,30 @@ position = Vector2(309, 222) unique_name_in_owner = true script = ExtResource("6_n2kp0") +[node name="crates" type="Node2D" parent="."] + +[node name="RigidBody2D" parent="crates" instance=ExtResource("1_uivx3")] +position = Vector2(640, 228) +rotation = 0.806532 + +[node name="RigidBody2D5" parent="crates" instance=ExtResource("1_uivx3")] +position = Vector2(687, 174) +rotation = 0.806532 + +[node name="RigidBody2D2" parent="crates" instance=ExtResource("1_uivx3")] +position = Vector2(586, 297) +rotation = 0.806532 + +[node name="RigidBody2D3" parent="crates" instance=ExtResource("1_uivx3")] +position = Vector2(668, 276) +rotation = 0.806532 + +[node name="RigidBody2D4" parent="crates" instance=ExtResource("1_uivx3")] +position = Vector2(749, 242) +rotation = 0.806532 + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +tile_set = SubResource("TileSet_ixl4j") + [connection signal="areaTrigger" from="Area2D" to="." method="_on_trigger"] [connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] diff --git a/dariusgodotproject/scenes/player.tscn b/dariusgodotproject/scenes/player.tscn index 280b5cf..f27fccf 100644 --- a/dariusgodotproject/scenes/player.tscn +++ b/dariusgodotproject/scenes/player.tscn @@ -1,9 +1,177 @@ -[gd_scene load_steps=3 format=3 uid="uid://b75mow511wmmb"] +[gd_scene load_steps=28 format=3 uid="uid://b75mow511wmmb"] [ext_resource type="Script" path="res://scripts/charactercontroller.gd" id="1_racyk"] +[ext_resource type="Texture2D" uid="uid://d2gvpgkw8np1c" path="res://assets/graphics/player/idle/Player Idle 48x48.png" id="2_xdqt5"] +[ext_resource type="Texture2D" uid="uid://ctneeupm1dwsb" path="res://assets/graphics/player/jump/player jump 48x48.png" id="3_0nv1p"] +[ext_resource type="Texture2D" uid="uid://ccxw74sa7kyv" path="res://assets/graphics/player/run/player run 48x48.png" id="3_d2rrr"] [sub_resource type="CircleShape2D" id="CircleShape2D_i8a0m"] +[sub_resource type="AtlasTexture" id="AtlasTexture_afagl"] +atlas = ExtResource("2_xdqt5") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_euos0"] +atlas = ExtResource("2_xdqt5") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_81j0b"] +atlas = ExtResource("2_xdqt5") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nvqq6"] +atlas = ExtResource("2_xdqt5") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_f5kfk"] +atlas = ExtResource("2_xdqt5") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4xfed"] +atlas = ExtResource("2_xdqt5") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hoplt"] +atlas = ExtResource("2_xdqt5") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3mtsu"] +atlas = ExtResource("2_xdqt5") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_en8us"] +atlas = ExtResource("2_xdqt5") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8f7g2"] +atlas = ExtResource("2_xdqt5") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_pnfvt"] +atlas = ExtResource("3_0nv1p") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8ui61"] +atlas = ExtResource("3_0nv1p") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uh01i"] +atlas = ExtResource("3_0nv1p") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qjxe0"] +atlas = ExtResource("3_d2rrr") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_taigb"] +atlas = ExtResource("3_d2rrr") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8a5ih"] +atlas = ExtResource("3_d2rrr") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_4sr5y"] +atlas = ExtResource("3_d2rrr") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7ont0"] +atlas = ExtResource("3_d2rrr") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cmjei"] +atlas = ExtResource("3_d2rrr") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lwedr"] +atlas = ExtResource("3_d2rrr") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h0ov4"] +atlas = ExtResource("3_d2rrr") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="SpriteFrames" id="SpriteFrames_2kykc"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_afagl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_euos0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_81j0b") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nvqq6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_f5kfk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4xfed") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hoplt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3mtsu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_en8us") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8f7g2") +}], +"loop": true, +"name": &"idle", +"speed": 12.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_pnfvt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8ui61") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uh01i") +}], +"loop": false, +"name": &"jump", +"speed": 5.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_qjxe0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_taigb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8a5ih") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_4sr5y") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7ont0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cmjei") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lwedr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h0ov4") +}], +"loop": true, +"name": &"run", +"speed": 12.0 +}] + [node name="CharacterBody2D" type="CharacterBody2D" groups=["player"]] script = ExtResource("1_racyk") metadata/_edit_group_ = true @@ -23,3 +191,13 @@ position = Vector2(10, -5) [node name="LeftTarget" type="Node2D" parent="."] position = Vector2(-10, -5) + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 +sprite_frames = SubResource("SpriteFrames_2kykc") +animation = &"jump" +autoplay = "jump" +frame = 2 +frame_progress = 1.0 diff --git a/dariusgodotproject/scripts/bullet.gd b/dariusgodotproject/scripts/bullet.gd index 428759a..1086479 100644 --- a/dariusgodotproject/scripts/bullet.gd +++ b/dariusgodotproject/scripts/bullet.gd @@ -1,4 +1,5 @@ class_name Bullet extends Area2D +@onready var bulletGraphic: Sprite2D = $Sprite2D var speed = 700 signal hit @@ -16,9 +17,13 @@ func _physics_process(delta: float) -> void: position += transform.x * speed * delta func setSpeed(value): speed = value + if speed <0: + bulletGraphic.flip_h = true + else: + bulletGraphic.flip_h = false func _on_body_entered(body: Node2D) -> void: print("Bullet hits something") if not body.is_in_group("player"): - hit.emit(body) + hit.emit(self, body) diff --git a/dariusgodotproject/scripts/charactercontroller.gd b/dariusgodotproject/scripts/charactercontroller.gd index 9197110..d8802fa 100644 --- a/dariusgodotproject/scripts/charactercontroller.gd +++ b/dariusgodotproject/scripts/charactercontroller.gd @@ -13,21 +13,25 @@ var pushTarget var pushRightEnabled = false var pushLeftEnabled = false @export var PUSH_FORCE = 700 +@onready var animation: AnimatedSprite2D = $AnimatedSprite2D # Bullet Attack Variables @onready var right_target: Node2D = $RightTarget @onready var left_target: Node2D = $LeftTarget - +var isJumping = false func _physics_process(delta: float) -> void: # Add the gravity. if not is_on_floor(): velocity += get_gravity() * delta - + else: + isJumping = false # Handle jump. if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = JUMP_VELOCITY + animation.play("jump") + isJumping = true # Shove Attack if Input.is_action_just_pressed("shove"): @@ -39,25 +43,33 @@ func _physics_process(delta: float) -> void: if Input.is_action_just_pressed("shoot"): #print("I want to shoot") #make a new bullet - var myBullet = %SceneManager.bulletFactory() - #var myBullet = bullet.instantiate() - owner.add_child(myBullet) - myBullet.transform = right_target.global_transform + + if faceLeft == true: - myBullet.transform = left_target.global_transform - myBullet.setSpeed(-700) - + var myBullet = %SceneManager.makeBullet(left_target.global_transform,-700) + #myBullet.transform = left_target.global_transform + #myBullet.setSpeed(-700) + if faceLeft == false: + var myBullet = %SceneManager.makeBullet(right_target.global_transform,700) # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. var direction := Input.get_axis("left", "right") if direction: velocity.x = direction * SPEED if direction <0: + if not isJumping: + animation.play("run") faceLeft = true + animation.flip_h = true if direction >0: + if not isJumping: + animation.play("run") faceLeft = false + animation.flip_h = false else: + if not isJumping: + animation.play("idle") velocity.x = move_toward(velocity.x, 0, SPEED) move_and_slide() diff --git a/dariusgodotproject/scripts/gamecontroller.gd b/dariusgodotproject/scripts/gamecontroller.gd index 172a29f..6332716 100644 --- a/dariusgodotproject/scripts/gamecontroller.gd +++ b/dariusgodotproject/scripts/gamecontroller.gd @@ -3,7 +3,8 @@ extends Node2D var boxTotal = 4 var timer:=Timer.new() var countdown = 10 - +var totalCrates = 0 +signal destroyBox(body) # C alled when the node enters the scene tree for the first time. func _ready() -> void: add_child(timer) @@ -37,4 +38,8 @@ func _on_trigger(effect: Variant, body) -> void: func bulletHit(body): print("Game controller knows bullet hit something") if body.is_in_group("destructable"): - body.queue_free() + destroyBox.emit(body) + +func countCrates(value): + totalCrates = value + diff --git a/dariusgodotproject/scripts/scenemanager.gd b/dariusgodotproject/scripts/scenemanager.gd index 7e72561..886b43d 100644 --- a/dariusgodotproject/scripts/scenemanager.gd +++ b/dariusgodotproject/scripts/scenemanager.gd @@ -1,10 +1,20 @@ extends Node @onready var game: Node2D = $".." +@onready var crates: Node2D = $"../crates" var bullet = preload("res://scenes/bullet.tscn") +var bulletArray:Array = [] +var bulletsMadeTotal :=0 + +var totalCrates = 0 # Called when the node enters the scene tree for the first time. func _ready() -> void: - pass # Replace with function body. + game.destroyBox.connect(boxDestroy) + for obj in crates.get_children(): + if obj.is_in_group("destructable"): + #increase the box counter + totalCrates +=1 + # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -13,10 +23,28 @@ func _process(delta: float) -> void: func bulletFactory(): print("Factory will make a bullet") - var myBullet = bullet.instantiate() - myBullet.connect("hit", onBulletHit) + var myBullet + if bulletArray.size() < 10: + myBullet = bullet.instantiate() + myBullet.connect("hit", onBulletHit) + owner.add_child(myBullet) + else: + myBullet = bulletArray.pop_back() + bulletArray.push_front(myBullet) return myBullet +func makeBullet(position, speed): + var myBullet = bulletFactory() + myBullet.transform = position + myBullet.setSpeed(speed) + + return myBullet + -func onBulletHit(body): +func onBulletHit(bullet, body): + bullet.position = Vector2(-100,-100) + bullet.setSpeed(0) print("Scene manager knows bullet hit") game.bulletHit(body) +func boxDestroy(body): + print("test") + body.queue_free()