Compare commits

..

No commits in common. "main" and "week2" have entirely different histories.
main ... week2

46 changed files with 133 additions and 2371 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cco2vhmejry0v"
path="res://.godot/imported/coin.png-20c0ec177f21de2ef8f2f0e70fa6fe8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/collectibles/coin.png"
dest_files=["res://.godot/imported/coin.png-20c0ec177f21de2ef8f2f0e70fa6fe8a.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.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqo6e8pa3jewf"
path="res://.godot/imported/slime_purple.png-7c7bd1452ab1f0d8805110e20459acf6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/enemies/slime_purple.png"
dest_files=["res://.godot/imported/slime_purple.png-7c7bd1452ab1f0d8805110e20459acf6.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.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwx4x0wq3vetw"
path="res://.godot/imported/crate.png-b286bd97caa3cbc59746f2db7de46191.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/objects/crate.png"
dest_files=["res://.godot/imported/crate.png-b286bd97caa3cbc59746f2db7de46191.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.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1l8de3i0kljl"
path="res://.godot/imported/Player Death 64x64.png-0c6ff54e7d9aad74b66dce47376541f8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/player/death/Player Death 64x64.png"
dest_files=["res://.godot/imported/Player Death 64x64.png-0c6ff54e7d9aad74b66dce47376541f8.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.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0osk3f111068"
path="res://.godot/imported/Player Hurt 48x48.png-a720e51cb19103e76b22ab6c1b81302d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/player/hurt/Player Hurt 48x48.png"
dest_files=["res://.godot/imported/Player Hurt 48x48.png-a720e51cb19103e76b22ab6c1b81302d.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.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bfhqvl875is6f"
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1021 B

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2s48joyna11q"
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bvat1vqwtua2p"
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://66hnfsu3e8ll"
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dktvd8atklmau"
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dordo7deet5y0"
path="res://.godot/imported/forestbackground.png-f42d75295504b2d17acc59ff8840ec7f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/terrains/backgrounds/forestbackground.png"
dest_files=["res://.godot/imported/forestbackground.png-f42d75295504b2d17acc59ff8840ec7f.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.

Before

Width:  |  Height:  |  Size: 584 B

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cukevm4avtgnp"
path="res://.godot/imported/sky.png-51a4e0a575be38e95f86ed632e1f79b6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/terrains/backgrounds/sky.png"
dest_files=["res://.godot/imported/sky.png-51a4e0a575be38e95f86ed632e1f79b6.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.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cg03sfie3jb4h"
path="res://.godot/imported/trees.png-48cbb9e027f2fcbb533617bea5488df9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/terrains/backgrounds/trees.png"
dest_files=["res://.godot/imported/trees.png-48cbb9e027f2fcbb533617bea5488df9.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

@ -15,18 +15,6 @@ run/main_scene="res://scenes/game.tscn"
config/features=PackedStringArray("4.3", "Forward Plus") config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://icon.svg" config/icon="res://icon.svg"
[autoload]
GameController="*res://scripts/gameController.gd"
[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] [file_customization]
folder_colors={ folder_colors={

View File

@ -1,75 +0,0 @@
[gd_scene load_steps=9 format=3 uid="uid://bk0pk4m1ln716"]
[ext_resource type="Script" path="res://scripts/badguy.gd" id="1_oeik4"]
[ext_resource type="Texture2D" uid="uid://dqo6e8pa3jewf" path="res://assets/graphics/enemies/slime_purple.png" id="2_bfdny"]
[sub_resource type="AtlasTexture" id="AtlasTexture_r6wn1"]
atlas = ExtResource("2_bfdny")
region = Rect2(0, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_te1wg"]
atlas = ExtResource("2_bfdny")
region = Rect2(24, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_g742w"]
atlas = ExtResource("2_bfdny")
region = Rect2(48, 24, 24, 24)
[sub_resource type="AtlasTexture" id="AtlasTexture_6ebwa"]
atlas = ExtResource("2_bfdny")
region = Rect2(72, 24, 24, 24)
[sub_resource type="SpriteFrames" id="SpriteFrames_mb27d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_r6wn1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_te1wg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g742w")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6ebwa")
}],
"loop": true,
"name": &"idle",
"speed": 12.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_blkie"]
size = Vector2(14, 15)
[node name="Area2D" type="Area2D" groups=["enemies"]]
scale = Vector2(2, 2)
script = ExtResource("1_oeik4")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_mb27d")
animation = &"idle"
autoplay = "idle"
frame_progress = 0.396641
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 4.5)
shape = SubResource("RectangleShape2D_blkie")
[node name="RightRay" type="RayCast2D" parent="."]
target_position = Vector2(13, 0)
[node name="LeftRay" type="RayCast2D" parent="."]
target_position = Vector2(-13, 0)
[node name="RightFloorRay" type="RayCast2D" parent="."]
position = Vector2(8, 3)
target_position = Vector2(0, 11)
[node name="LeftFloorRay" type="RayCast2D" parent="."]
position = Vector2(-8, 3)
target_position = Vector2(0, 11)
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,13 +1,11 @@
[gd_scene load_steps=4 format=3 uid="uid://b53r5iysu7d4t"] [gd_scene load_steps=3 format=3 uid="uid://b53r5iysu7d4t"]
[ext_resource type="Script" path="res://scripts/bullet.gd" id="1_qubif"] [ext_resource type="Script" path="res://scripts/bullet.gd" id="1_qubif"]
[ext_resource type="Texture2D" uid="uid://66hnfsu3e8ll" path="res://assets/graphics/projectiles/pixel_bullet.png" id="2_ifgvb"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_qxj7e"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_qxj7e"]
size = Vector2(19, 4) size = Vector2(19, 4)
[node name="Area2D" type="Area2D"] [node name="Area2D" type="Area2D"]
position = Vector2(1, 0)
script = ExtResource("1_qubif") script = ExtResource("1_qubif")
metadata/_edit_group_ = true metadata/_edit_group_ = true
@ -16,11 +14,4 @@ position = Vector2(-0.5, 0)
shape = SubResource("RectangleShape2D_qxj7e") shape = SubResource("RectangleShape2D_qxj7e")
debug_color = Color(0.717124, 0, 0.290401, 0.42) debug_color = Color(0.717124, 0, 0.290401, 0.42)
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(-6, -2)
rotation = -3.14159
scale = Vector2(0.151432, 0.0740068)
texture = ExtResource("2_ifgvb")
[connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,116 +0,0 @@
[gd_scene load_steps=17 format=3 uid="uid://cey0ymp1n0iqe"]
[ext_resource type="Texture2D" uid="uid://cco2vhmejry0v" path="res://assets/graphics/collectibles/coin.png" id="1_c71mt"]
[ext_resource type="Script" path="res://scripts/coin.gd" id="1_h4xkt"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n1dcx"]
atlas = ExtResource("1_c71mt")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_13l51"]
atlas = ExtResource("1_c71mt")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hahrw"]
atlas = ExtResource("1_c71mt")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_mfe8o"]
atlas = ExtResource("1_c71mt")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_71uln"]
atlas = ExtResource("1_c71mt")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_c7ty3"]
atlas = ExtResource("1_c71mt")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_n435u"]
atlas = ExtResource("1_c71mt")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6uw02"]
atlas = ExtResource("1_c71mt")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xlt2g"]
atlas = ExtResource("1_c71mt")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_367r4"]
atlas = ExtResource("1_c71mt")
region = Rect2(144, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_omldi"]
atlas = ExtResource("1_c71mt")
region = Rect2(160, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_74aet"]
atlas = ExtResource("1_c71mt")
region = Rect2(176, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_dwt5l"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n1dcx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_13l51")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hahrw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mfe8o")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_71uln")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_c7ty3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_n435u")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6uw02")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xlt2g")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_367r4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_omldi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_74aet")
}],
"loop": true,
"name": &"idle",
"speed": 12.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_4xboy"]
radius = 5.0
[node name="Area2D" type="Area2D" groups=["collectibles"]]
script = ExtResource("1_h4xkt")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
sprite_frames = SubResource("SpriteFrames_dwt5l")
animation = &"idle"
autoplay = "idle"
frame_progress = 0.32788
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_4xboy")
debug_color = Color(0.614132, 0.536519, 0.0596093, 0.42)
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

View File

@ -1,19 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://djkjmi7bo58uv"] [gd_scene load_steps=2 format=3 uid="uid://djkjmi7bo58uv"]
[ext_resource type="Texture2D" uid="uid://dwx4x0wq3vetw" path="res://assets/graphics/objects/crate.png" id="1_6lxxi"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ilk50"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ilk50"]
size = Vector2(47, 44) size = Vector2(47, 44)
[node name="RigidBody2D" type="RigidBody2D" groups=["destructables"]] [node name="RigidBody2D" type="RigidBody2D"]
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, 3)
scale = Vector2(0.1762, 0.152876)
texture = ExtResource("1_6lxxi")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_ilk50") shape = SubResource("RectangleShape2D_ilk50")
debug_color = Color(0.889053, 0.327177, 5.77569e-07, 0.42) debug_color = Color(0.889053, 0.327177, 5.77569e-07, 0.42)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,296 +1,17 @@
[gd_scene load_steps=44 format=3 uid="uid://b2hyqfqh02ep6"] [gd_scene load_steps=3 format=3 uid="uid://b2hyqfqh02ep6"]
[ext_resource type="Script" path="res://scripts/charController.gd" id="1_4o8do"] [ext_resource type="Script" path="res://scripts/charController.gd" id="1_4o8do"]
[ext_resource type="Texture2D" uid="uid://c1l8de3i0kljl" path="res://assets/graphics/player/death/Player Death 64x64.png" id="2_alp3v"]
[ext_resource type="Texture2D" uid="uid://bfhqvl875is6f" path="res://assets/graphics/player/idle/Player Idle 48x48.png" id="2_yfuca"]
[ext_resource type="Texture2D" uid="uid://d0osk3f111068" path="res://assets/graphics/player/hurt/Player Hurt 48x48.png" id="3_5pi5t"]
[ext_resource type="Texture2D" uid="uid://c2s48joyna11q" path="res://assets/graphics/player/jump/player jump 48x48.png" id="3_p8gbr"]
[ext_resource type="Texture2D" uid="uid://bvat1vqwtua2p" path="res://assets/graphics/player/run/player run 48x48.png" id="3_y36hw"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qr8pt"] [sub_resource type="CircleShape2D" id="CircleShape2D_uvblg"]
radius = 9.93 radius = 32.5576
height = 35.0
[sub_resource type="AtlasTexture" id="AtlasTexture_iomdd"] [node name="CharacterBody2D" type="CharacterBody2D"]
atlas = ExtResource("2_alp3v")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qlc64"]
atlas = ExtResource("2_alp3v")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_r8feb"]
atlas = ExtResource("2_alp3v")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_pchcp"]
atlas = ExtResource("2_alp3v")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ekkmw"]
atlas = ExtResource("2_alp3v")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_aenr4"]
atlas = ExtResource("2_alp3v")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_c2bld"]
atlas = ExtResource("2_alp3v")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_556cp"]
atlas = ExtResource("2_alp3v")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_hf6j1"]
atlas = ExtResource("2_alp3v")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_pvct1"]
atlas = ExtResource("2_alp3v")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_0ae2b"]
atlas = ExtResource("3_5pi5t")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_0i34p"]
atlas = ExtResource("3_5pi5t")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_k17h1"]
atlas = ExtResource("3_5pi5t")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_1nyuv"]
atlas = ExtResource("3_5pi5t")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_cdvw1"]
atlas = ExtResource("2_yfuca")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_q1l1v"]
atlas = ExtResource("2_yfuca")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_6hv7e"]
atlas = ExtResource("2_yfuca")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_4h4qw"]
atlas = ExtResource("2_yfuca")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_638nb"]
atlas = ExtResource("2_yfuca")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_73fjy"]
atlas = ExtResource("2_yfuca")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_7r0nq"]
atlas = ExtResource("2_yfuca")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_5potv"]
atlas = ExtResource("2_yfuca")
region = Rect2(336, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_c5yi2"]
atlas = ExtResource("2_yfuca")
region = Rect2(384, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_flju4"]
atlas = ExtResource("2_yfuca")
region = Rect2(432, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_4ckr0"]
atlas = ExtResource("3_p8gbr")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_7vs6r"]
atlas = ExtResource("3_p8gbr")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_ktf26"]
atlas = ExtResource("3_p8gbr")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_csmmg"]
atlas = ExtResource("3_y36hw")
region = Rect2(0, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qwm4e"]
atlas = ExtResource("3_y36hw")
region = Rect2(48, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_mynlp"]
atlas = ExtResource("3_y36hw")
region = Rect2(96, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_q5scx"]
atlas = ExtResource("3_y36hw")
region = Rect2(144, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_j0rp2"]
atlas = ExtResource("3_y36hw")
region = Rect2(192, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_7fytd"]
atlas = ExtResource("3_y36hw")
region = Rect2(240, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_nw067"]
atlas = ExtResource("3_y36hw")
region = Rect2(288, 0, 48, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_1caon"]
atlas = ExtResource("3_y36hw")
region = Rect2(336, 0, 48, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_52pno"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_iomdd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qlc64")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r8feb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pchcp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ekkmw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_aenr4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_c2bld")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_556cp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hf6j1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pvct1")
}],
"loop": false,
"name": &"playerDeath",
"speed": 6.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_0ae2b")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0i34p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_k17h1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1nyuv")
}],
"loop": false,
"name": &"playerHurt",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cdvw1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q1l1v")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6hv7e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4h4qw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_638nb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_73fjy")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7r0nq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5potv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_c5yi2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_flju4")
}],
"loop": true,
"name": &"playerIdle",
"speed": 12.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4ckr0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7vs6r")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ktf26")
}],
"loop": false,
"name": &"playerJump",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_csmmg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qwm4e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_mynlp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q5scx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j0rp2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7fytd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nw067")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_1caon")
}],
"loop": true,
"name": &"playerRun",
"speed": 12.0
}]
[node name="CharacterBody2D" type="CharacterBody2D" groups=["player"]]
script = ExtResource("1_4o8do") script = ExtResource("1_4o8do")
PUSH_FORCE = 100 PUSH_FORCE = 100
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_qr8pt") shape = SubResource("CircleShape2D_uvblg")
debug_color = Color(0.872789, 0.000463018, 0.842707, 0.42) debug_color = Color(0.872789, 0.000463018, 0.842707, 0.42)
[node name="RightRay" type="RayCast2D" parent="."] [node name="RightRay" type="RayCast2D" parent="."]
@ -304,18 +25,3 @@ position = Vector2(35, -10)
[node name="MarkerLeft" type="Node2D" parent="."] [node name="MarkerLeft" type="Node2D" parent="."]
position = Vector2(-35, -10) position = Vector2(-35, -10)
[node name="Camera2D" type="Camera2D" parent="."]
offset = Vector2(0, -30)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture_filter = 1
position = Vector2(-1, -3)
scale = Vector2(1.29167, 1.29167)
sprite_frames = SubResource("SpriteFrames_52pno")
animation = &"playerDeath"
autoplay = "playerIdle"
frame = 9
frame_progress = 1.0
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animated_finished"]

View File

@ -1,75 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://dna0q0tmmxs0g"]
[ext_resource type="Script" path="res://scripts/ui.gd" id="1_1b5vo"]
[sub_resource type="LabelSettings" id="LabelSettings_bb10x"]
font_size = 12
font_color = Color(0.776471, 0.027451, 0.113725, 1)
outline_size = 1
outline_color = Color(0.0768358, 0.0768358, 0.0768358, 1)
shadow_size = 3
shadow_color = Color(0.121569, 0.121569, 0.121569, 0.670588)
[sub_resource type="LabelSettings" id="LabelSettings_rb7h3"]
font_size = 12
outline_size = 1
outline_color = Color(0.0768358, 0.0768358, 0.0768358, 1)
shadow_size = 3
shadow_color = Color(0.121569, 0.121569, 0.121569, 0.670588)
[sub_resource type="LabelSettings" id="LabelSettings_fsj7b"]
font_size = 12
font_color = Color(0.99068, 0.855439, 0.297628, 1)
outline_size = 1
outline_color = Color(0.0768358, 0.0768358, 0.0768358, 1)
shadow_size = 3
shadow_color = Color(0.121569, 0.121569, 0.121569, 0.670588)
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_1b5vo")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 23.0
grow_horizontal = 2
metadata/_edit_use_anchors_ = true
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
texture_filter = 1
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="health" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer"]
texture_filter = 1
layout_mode = 2
label_settings = SubResource("LabelSettings_bb10x")
[node name="MarginContainer3" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="timer" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer3"]
layout_mode = 2
label_settings = SubResource("LabelSettings_rb7h3")
horizontal_alignment = 1
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="coins" type="Label" parent="VBoxContainer/HBoxContainer/MarginContainer2"]
texture_filter = 1
layout_mode = 2
label_settings = SubResource("LabelSettings_fsj7b")
horizontal_alignment = 2

View File

@ -1,32 +0,0 @@
class_name BadGuy extends Area2D
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
@onready var right_ray: RayCast2D = $RightRay
@onready var left_ray: RayCast2D = $LeftRay
@onready var right_floor_ray: RayCast2D = $RightFloorRay
@onready var left_floor_ray: RayCast2D = $LeftFloorRay
const speed := 60
var direction = 1
signal playerHurt
func _process(delta: float) -> void:
if not right_floor_ray.is_colliding():
#about to fall off the right
direction = -1
sprite.flip_h = not sprite.flip_h
if not left_floor_ray.is_colliding():
#about to fall off the left
sprite.flip_h = not sprite.flip_h
direction = 1
position.x += direction*speed*delta
func _on_body_entered(body: Node2D) -> void:
if body.is_in_group("player"):
print("player hurt")
playerHurt.emit()
# queue_free()

View File

@ -1,31 +1,14 @@
class_name Bullet extends Area2D extends Area2D
@onready var bulletGraphic: Sprite2D = $Sprite2D @export var speed := 700
signal hit(bullet, body)
var speed = 700 func set_speed(speedval):
signal hit speed = speedval
# Called when the node enters the scene tree for the first time. func _physics_process(delta):
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
pass
func _physics_process(delta: float) -> void:
position += transform.x * speed * delta 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):
func _on_body_entered(body: Node2D) -> void: print ("Hit a thing") # Replace with function body.
print("Bullet hit sumtin")
if not body.is_in_group("player"):
hit.emit(self, body)

View File

@ -5,7 +5,7 @@ const SPEED = 500.0
const JUMP_VELOCITY = -600.0 const JUMP_VELOCITY = -600.0
@export var BUMP_FORCE = 90 @export var BUMP_FORCE = 90
@export var PUSH_FORCE = 700 @export var PUSH_FORCE = 700
@onready var animation: AnimatedSprite2D = $AnimatedSprite2D
var faceLeft = false var faceLeft = false
var pushLeftEnabled = false var pushLeftEnabled = false
@ -19,38 +19,14 @@ var bullet = preload("res://scenes/bullet.tscn")
@onready var marker_right = $MarkerRight @onready var marker_right = $MarkerRight
@onready var marker_left = $MarkerLeft @onready var marker_left = $MarkerLeft
var isJumping = false
var living = true
var animPlaying = "playerIdle"
signal deathAnimDone
func hurtPlayer(_amt):
if living:
animPlaying = "playerHurt"
animation.play(animPlaying)
func killPlayer():
if living:
living = false
print("Oh no")
animPlaying = "playerDeath"
animation.play(animPlaying)
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
if living and not animPlaying == "playerHurt":
# Add the gravity. # Add the gravity.
if not is_on_floor(): if not is_on_floor():
velocity += get_gravity() * delta velocity += get_gravity() * delta
else:
isJumping = false
# Handle jump. # Handle jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor(): if Input.is_action_just_pressed("ui_accept") and is_on_floor():
isJumping = true
velocity.y = JUMP_VELOCITY velocity.y = JUMP_VELOCITY
if pushTarget: if pushTarget:
@ -65,33 +41,32 @@ func _physics_process(delta: float) -> void:
pushRightEnabled = false pushRightEnabled = false
if Input.is_action_just_pressed("Shoot"): if Input.is_action_just_pressed("Shoot"):
var mybullet = bullet.instantiate()
print("I will shoot")
if faceLeft: if faceLeft:
var _myBullet = %SceneManager.makeBullet(marker_left.global_transform, -700) print("shoot left")
mybullet.set_speed(-700)
mybullet.transform = marker_right.global_transform
else: else:
var _myBullet = %SceneManager.makeBullet(marker_right.global_transform, 700) print("shoot right")
mybullet.transform = marker_right.global_transform
owner.add_child(mybullet)
# Get the input direction and handle the movement/deceleration. # Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions. # As good practice, you should replace UI actions with custom gameplay actions.
var direction := Input.get_axis("ui_left", "ui_right") var direction := Input.get_axis("ui_left", "ui_right")
if direction:
if direction < 0: if direction < 0:
faceLeft = true faceLeft = true
if direction > 0: if direction > 0:
faceLeft = false faceLeft = false
animation.flip_h = faceLeft
if not isJumping:
animation.play("playerRun")
else: if direction:
animation.play("playerJump")
velocity.x = direction * SPEED velocity.x = direction * SPEED
else: else:
if not isJumping:
animation.play("playerIdle")
else:
animation.play("playerJump")
velocity.x = move_toward(velocity.x, 0, SPEED) velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide() move_and_slide()
@ -102,6 +77,7 @@ func _physics_process(delta: float) -> void:
pushTarget = false pushTarget = false
if left_ray.is_colliding(): if left_ray.is_colliding():
print("Left ray collision")
var collider = left_ray.get_collider() var collider = left_ray.get_collider()
if collider is Node: if collider is Node:
if collider.is_in_group("pushables"): if collider.is_in_group("pushables"):
@ -111,6 +87,7 @@ func _physics_process(delta: float) -> void:
pushLeftEnabled = false pushLeftEnabled = false
if right_ray.is_colliding(): if right_ray.is_colliding():
print("Right ray collision")
var collider = right_ray.get_collider() var collider = right_ray.get_collider()
if collider is Node: if collider is Node:
if collider.is_in_group("pushables"): if collider.is_in_group("pushables"):
@ -118,11 +95,3 @@ func _physics_process(delta: float) -> void:
pushTarget = collider pushTarget = collider
else: else:
pushRightEnabled = false pushRightEnabled = false
func _on_animated_finished() -> void:
if animPlaying == "playerHurt":
animPlaying = "playerIdle"
if animPlaying == "playerDeath":
# emit death signal
deathAnimDone.emit()

View File

@ -1,9 +0,0 @@
class_name Coin extends Area2D
signal coinCollected
func _on_body_entered(body: Node2D) -> void:
if body.is_in_group("player"):
coinCollected.emit()
queue_free()

View File

@ -1,109 +1,38 @@
extends Node2D extends Node2D
var boxTotal = 3
var timer:= Timer.new() var timer:= Timer.new()
var secondCount= 99 @export var secondCount= 15
var totalCrates := 0
var totalCoins := 0
var totalBadGuys := 0
var totalCoinsCollected := 0
var cratesDestroyed := 0
var player:Resource
# level info
var levels = ["res://scenes/game.tscn", "res://scenes/level2.tscn"]
var timers = [90, 90]
var currentLevel = 0
#Gamecontroller signals
signal destroyBox(body)
signal levelComplete(leveltoLoad)
signal playerHurt(amt, max)
signal playerDeath()
signal tick(timeRemaining)
signal coinsUpdate(collected, remaining)
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
player = load("res://scripts/res/playerstats.tres")
print("Player Health: "+str(player.health))
print("Number of levels: "+str(levels.size()))
add_child(timer) add_child(timer)
timer.wait_time = 1 timer.wait_time = 1
timer.one_shot = false timer.one_shot = false
timer.connect("timeout", secondCounter) timer.connect("timeout", secondCounter)
timer.start() timer.start()
func reset():
secondCount = timers[currentLevel]
player.health = player.starting_health
playerHurt.emit.call_deferred(player.health, player.max_health)
tick.emit.call_deferred(secondCount)
totalCoinsCollected = 0
coinsUpdate.emit.call_deferred(totalCoinsCollected, totalCoins)
func secondCounter(): func secondCounter():
print("time left: ", secondCount) print("time left: ", secondCount)
secondCount -=1 secondCount -=1
tick.emit(secondCount)
if secondCount <= 0: if secondCount <= 0:
print("TIME IS UP") print("A loser is you")
levelComplete.emit(levels[currentLevel]) get_tree().reload_current_scene()
func playerDamaged(): # Called every frame. 'delta' is the elapsed time since the previous frame.
print("GC knows player took damage") func _process(delta: float) -> void:
player.health = max(player.health-20, 0) pass
print("Player Health: "+str(player.health))
playerHurt.emit(player.health, player.max_health)
if player.health <= 0: func _on_trigger(effect: Variant, body) -> void:
playerDeath.emit() print("they were triggered!")
if body is RigidBody2D:
print("crate spotted")
boxTotal -= 1
body.queue_free()
if boxTotal <=0:
print("A winner is you")
get_tree().reload_current_scene()
func coinCollected():
totalCoinsCollected += 1
print("DING! Coins collected: "+ str(totalCoinsCollected) )
coinsUpdate.emit(totalCoinsCollected, totalCoins)
func bulletHit(body):
print("Game controller knows bullet hit something")
if body.is_in_group("destructables"):
destroyBox.emit(body)
totalCrates -= 1
cratesDestroyed += 1
if totalCrates <=0:
print("You Won...")
currentLevel +=1
if currentLevel >= levels.size():
currentLevel = 0
levelComplete.emit(levels[currentLevel])
else:
print("Crates Remaining: "+str(totalCrates) )
# Coming from scenemanager
func countCrates(value):
totalCrates = value
func countCoins(value):
totalCoins = value
func countBadGuys(value):
totalBadGuys = value
func playerDead():
print("GC knows player is dead")
levelComplete.emit(levels[currentLevel])

View File

@ -1,5 +0,0 @@
class_name CharacterStats extends Resource
@export var max_health:int = 100
@export var starting_health:int = 100
@export var health:int = 100

View File

@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://hdyv13v8yr88"]
[ext_resource type="Script" path="res://scripts/res/characterStats.gd" id="1_d4qjr"]
[resource]
script = ExtResource("1_d4qjr")
max_health = 150
starting_health = 100
health = 100

View File

@ -1,9 +0,0 @@
[gd_resource type="Resource" script_class="CharacterStats" load_steps=2 format=3 uid="uid://3vw8xffecvtj"]
[ext_resource type="Script" path="res://scripts/res/characterStats.gd" id="1_74dik"]
[resource]
script = ExtResource("1_74dik")
max_health = 60
starting_health = 50
health = 50

View File

@ -1,92 +0,0 @@
extends Node
# @onready var game: Node2D = $".."
@onready var crates: Node2D = $"../crates"
@onready var coins: Node2D = $"../coins"
@onready var enemies: Node2D = $"../enemies"
@onready var player: CharacterBody2D = $"../CharacterBody2D"
@onready var ui: Control = $"../CanvasLayer/ui"
var theBullet = preload("res://scenes/bullet.tscn")
var bulletArray:Array = []
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var totalCrates = 0
GameController.reset()
GameController.destroyBox.connect(boxDestroy)
for obj in crates.get_children():
if obj.is_in_group("destructables"):
totalCrates += 1
GameController.countCrates(totalCrates)
var totalCoins = 0
for obj in coins.get_children():
if obj.is_in_group("collectibles"):
totalCoins += 1
obj.coinCollected.connect(GameController.coinCollected)
GameController.countCoins(totalCoins)
var totalEnemies = 0
for obj in enemies.get_children():
if obj.is_in_group("enemies"):
totalEnemies += 1
obj.playerHurt.connect(GameController.playerDamaged)
GameController.countBadGuys(totalEnemies)
GameController.countCrates(totalCrates)
# Player interactions
GameController.playerHurt.connect(player.hurtPlayer)
GameController.playerDeath.connect(player.killPlayer)
# Subscribe to signals
GameController.levelComplete.connect(changeLevel)
player.deathAnimDone.connect(GameController.playerDead)
GameController.tick.connect(ui.timerUpdate)
GameController.playerHurt.connect(ui.healthUpdate, ConnectFlags.CONNECT_DEFERRED)
GameController.coinsUpdate.connect(ui.coinsUpdate)
GameController.reset()
func changeLevel(level):
print("New level")
get_tree().change_scene_to_file(level)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void:
pass
func bulletFactory():
print("Factory will make a bullet")
var myBullet
if bulletArray.size() < 4:
myBullet = theBullet.instantiate()
myBullet.connect("hit", onBulletHit)
owner.add_child(myBullet)
else:
myBullet = bulletArray.pop_back()
bulletArray.push_front(myBullet)
print("there are ", bulletArray.size(), " bullets")
return myBullet
func makeBullet(position, speed):
var myBullet = bulletFactory()
myBullet.transform = position
myBullet.setSpeed(speed)
return
func onBulletHit(bullet, body):
bullet.position = Vector2(-100, -100)
bullet.setSpeed(0)
print("Scene manager knows bullet hit")
GameController.bulletHit(body)
func boxDestroy(body):
print("sceneMgr knows body destroyed")
body.queue_free()

View File

@ -9,7 +9,7 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta: float) -> void: func _process(delta: float) -> void:
pass pass

View File

@ -1,31 +0,0 @@
extends Control
@onready var timer: Label = $VBoxContainer/HBoxContainer/MarginContainer3/timer
@onready var health: Label = $VBoxContainer/HBoxContainer/MarginContainer/health
@onready var coins: Label = $VBoxContainer/HBoxContainer/MarginContainer2/coins
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func timerUpdate(timeRemaining):
if timeRemaining <= 0:
timer.text = "OUT OF TIME"
else:
timer.text = "🕔: "+str(timeRemaining)
func healthUpdate(healthRemaining, healthMax):
if healthRemaining <= 0:
health.text = " 💀 💀 💀 💀 "
else:
health.text = (" ❤️: "+str(healthRemaining)+"/"+str(healthMax))
func coinsUpdate(collected, remaining):
coins.text = ("🪙: "+str(collected)+"/"+str(remaining)+" ")