From 2014ed0b377c99aeff24b351a539068de48a8f7f Mon Sep 17 00:00:00 2001 From: christophe Date: Mon, 25 Aug 2025 21:06:35 -0400 Subject: [PATCH] added coins, new parallax graphics, etc. --- .../backgrounds/forestbackground.png | Bin 0 -> 7521 bytes .../backgrounds/forestbackground.png.import | 34 ++ .../environment/backgrounds/midground.png | Bin 0 -> 1810 bytes .../backgrounds/midground.png.import | 34 ++ .../graphics/environment/backgrounds/sky.png | Bin 0 -> 634 bytes .../environment/backgrounds/sky.png.import | 34 ++ .../environment/terrain/mushroom_32x64.png | Bin 0 -> 2270 bytes .../terrain/mushroom_32x64.png.import | 34 ++ .../environment/terrain/veg_32x32.png | Bin 0 -> 675 bytes .../environment/terrain/veg_32x32.png.import | 34 ++ assets/graphics/objects/bullet.png | Bin 0 -> 3870 bytes assets/graphics/objects/bullet.png.import | 34 ++ assets/graphics/objects/coin.png | Bin 0 -> 500 bytes assets/graphics/objects/coin.png.import | 34 ++ assets/graphics/objects/crate.png | Bin 0 -> 1761 bytes assets/graphics/objects/crate.png.import | 34 ++ project.godot | 24 ++ scenes/bullet.tscn | 10 +- scenes/coin.tscn | 114 +++++ scenes/crate.tscn | 8 +- scenes/game.tscn | 397 +++++++++++++++++- scenes/player.tscn | 3 + scripts/bullet.gd | 6 + scripts/coin.gd | 6 + scripts/coin.gd.uid | 1 + scripts/gamecontroller.gd | 7 + scripts/player.gd | 4 +- scripts/scene_manager.gd | 12 +- 28 files changed, 853 insertions(+), 11 deletions(-) create mode 100644 assets/graphics/environment/backgrounds/forestbackground.png create mode 100644 assets/graphics/environment/backgrounds/forestbackground.png.import create mode 100644 assets/graphics/environment/backgrounds/midground.png create mode 100644 assets/graphics/environment/backgrounds/midground.png.import create mode 100644 assets/graphics/environment/backgrounds/sky.png create mode 100644 assets/graphics/environment/backgrounds/sky.png.import create mode 100644 assets/graphics/environment/terrain/mushroom_32x64.png create mode 100644 assets/graphics/environment/terrain/mushroom_32x64.png.import create mode 100644 assets/graphics/environment/terrain/veg_32x32.png create mode 100644 assets/graphics/environment/terrain/veg_32x32.png.import create mode 100644 assets/graphics/objects/bullet.png create mode 100644 assets/graphics/objects/bullet.png.import create mode 100644 assets/graphics/objects/coin.png create mode 100644 assets/graphics/objects/coin.png.import create mode 100644 assets/graphics/objects/crate.png create mode 100644 assets/graphics/objects/crate.png.import create mode 100644 scenes/coin.tscn create mode 100644 scripts/coin.gd create mode 100644 scripts/coin.gd.uid diff --git a/assets/graphics/environment/backgrounds/forestbackground.png b/assets/graphics/environment/backgrounds/forestbackground.png new file mode 100644 index 0000000000000000000000000000000000000000..975c185ca0a69fb6d672f68b36f8df4fe31d28b9 GIT binary patch literal 7521 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 u(P*k@(6Tzzc> z@>re>%_-Offb_{X3%{=1!ea#ToPRodHX?=xILAeN&x`m0iI3u)LR?v%?10qGM(XVe zEV`3Fe_&>)F6NCJ$z`OKqZglgNh6{4V4B%c?2`GdUW;!u82Q#cL2;3hO@1c^1NVv@ zxQn5_Wzu#2Mb#P}&{A?>fQ0=20Ybq42Buf2gCk|U9zFL`;b^v*kOQQCq5Qt1O5Ed+ zGNW3tO>$IH(UO~2UHG3So{W4_6gO4e(;<@j0=@Ec*9H`w8&VPcJQPx?7AscT6^Oys zY$dq5K413H{$S_RvW`bzOmyVB5zjJ!(gvRkMKDPcPqT6Y1uicAb>=8D>Ay(@<9MQ; zNo&T-QPH?|FB$nd5D5CWZtPZecqOjnElsl6AXREW-tNf6PEoQetyaXXZplI*|2v-u z_xp&fi|^)P+8``4slyL%@xC(k;8t59_rS+N7S@+^x&9U&cjw#F0n^vRg5q!lLpP94 zBZ6cEIgWIP=#>~4*T`795M1T(f{3H|YF+K~=#0FE;EsqiV3Ir8Zx_+l^E5T*P^=}h zt}LE~ZleK2QdK7Zx6gN5V}{P=GZH#Cavppkb10OzRw3gt+Dh~0z2NG?dd(d}xcQhN zlP3EqFYib9zg$}{LxbPtXD){{tMpth8CFUa+MxAQ`Gi(*&7@76Ek*VBowjIvspXkmi{DIXnw%*95Nq7q z6+8cJ9~D(~`{#91qmkKO-NnhBW5bHB>89W*U5V_NsPwRRl|bB9m&`lU6r=%K3lB@y zL-K7&ERm!c3XFa35cj0OjEaWAOUHvl4?db-X@?d-*+ikx9 zK5WuY41VM?1z$;P3$2e$+=vn;s=@D zpl5!sk1YP|rFh6I9>~-tBOMlOr3NkKCzx1+^)T?F-XdJo_zzY9LRjhNO3 z>37HI{7kmycKoU7V9hCAD3fh9dGg4BUoutQ>}Rypv@G5L^eXmWI+Ik6D$P-b!TYuL zOaX=T@g(PsK_6k_dg#8XbQYFn_v3aJv0=L6+0tPPRB2^XK0Ni0xW<{JKkXB$zthZ& z+gTfZuW_-VKH=ITJnDgoZa~>rpI6Vnj`MKYVgw4>#yVd|E(cSW5_9#QHS3p_JBB|- z4%l2gF)wBO^I`IQdfxHbB@c0soXOseb4w|eFUJbluwv#+JNKKH11%C=W1 zHXhKNd3$K>0V4DA3}B>pOP!<(vj>(e{YjkecE2Ka=vpDgd+?8$j>nt)ih9hbvR~5V z{B>4u__T-}&XUM#gyU|BwKDQMO9uQVw4?~IyTa~uPSWFi1Xm}g%!KRmU4&k_{?@h9 zf~@>ixi`3P z);%t1Thg>TR8K;Xdar9pquTQ2uH6XuB54*o8PhxfjIm<@9NDNuLL>o1G7>WqmNiSY0U}!uF zmxQ(8uMF8`xDSsm@O5q&TfLg`Z|JH|P6?*ipL0(W0=OwnsIa=v{u>lCHh#k=Askms z;E|Pd!lcJq6)pRN%(-hb6q&Wgv)aEAFAkO@Bo5ouRD>o-gU_E^7hUCs&hnm_ohM!_ Ulr7NJUkCtL3@>`k5l-5F02cS_i~s-t literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/backgrounds/midground.png.import b/assets/graphics/environment/backgrounds/midground.png.import new file mode 100644 index 0000000..a7e321d --- /dev/null +++ b/assets/graphics/environment/backgrounds/midground.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bikjxvjmfsqyy" +path="res://.godot/imported/midground.png-4a4c3bbde0207f76d956700b0cb3d4e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/backgrounds/midground.png" +dest_files=["res://.godot/imported/midground.png-4a4c3bbde0207f76d956700b0cb3d4e8.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/assets/graphics/environment/backgrounds/sky.png b/assets/graphics/environment/backgrounds/sky.png new file mode 100644 index 0000000000000000000000000000000000000000..18f6458f5da6de97e9b78e0ab66ab448f8f5de88 GIT binary patch literal 634 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Yow{Wll$)``g3IZv%ByV>YhW{YAVDIwDKoQOY zkH}&M20djEW~^9hUj`IpFY)wsWq-*bDXzlyP{t_&C?r|p8d2h$pPQSSSHj?2l$uzQ znxasiS(2gP?&%v4-pD5owC|Cpi(^Q|t+!Vk1sM!D4s0+y>T$sG#RCtOFBea&s$*cU zs)mIKaTjBR~y;O0H357(~tihAx#{Glc;yu5RQrq^L7rZ|CH`222tRp00i_ I>zopr0Np=xQ2+n{ literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/backgrounds/sky.png.import b/assets/graphics/environment/backgrounds/sky.png.import new file mode 100644 index 0000000..a07389b --- /dev/null +++ b/assets/graphics/environment/backgrounds/sky.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://26bbv4ejahja" +path="res://.godot/imported/sky.png-b132b9e240387925c40cca10d1d14c56.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/backgrounds/sky.png" +dest_files=["res://.godot/imported/sky.png-b132b9e240387925c40cca10d1d14c56.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/assets/graphics/environment/terrain/mushroom_32x64.png b/assets/graphics/environment/terrain/mushroom_32x64.png new file mode 100644 index 0000000000000000000000000000000000000000..c870005d0c128a8e13db57428f7dae85c9775346 GIT binary patch literal 2270 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 JPDHLkV1hjJ7cT$+ literal 0 HcmV?d00001 diff --git a/assets/graphics/environment/terrain/veg_32x32.png.import b/assets/graphics/environment/terrain/veg_32x32.png.import new file mode 100644 index 0000000..f5dd4ed --- /dev/null +++ b/assets/graphics/environment/terrain/veg_32x32.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbtwjiqoh4hov" +path="res://.godot/imported/veg_32x32.png-4b0b47ef99f3aa28e8f24956e44a31a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/graphics/environment/terrain/veg_32x32.png" +dest_files=["res://.godot/imported/veg_32x32.png-4b0b47ef99f3aa28e8f24956e44a31a5.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/assets/graphics/objects/bullet.png b/assets/graphics/objects/bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..900d030a8645ee217d7bdefb51fb303033b44488 GIT binary patch literal 3870 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 bkWwJVy}a1dc9wyq7sw1xS3j3^P6 0: + bullet_graphic.flip_h = false func _physics_process(delta: float) -> void: position += transform.x * SPEED * delta diff --git a/scripts/coin.gd b/scripts/coin.gd new file mode 100644 index 0000000..b871487 --- /dev/null +++ b/scripts/coin.gd @@ -0,0 +1,6 @@ +class_name Coin extends Area2D + +signal coinCollectedSignal(body, coin) + +func _on_body_entered(body: Node2D) -> void: + coinCollectedSignal.emit(body, self) diff --git a/scripts/coin.gd.uid b/scripts/coin.gd.uid new file mode 100644 index 0000000..da0c8f7 --- /dev/null +++ b/scripts/coin.gd.uid @@ -0,0 +1 @@ +uid://t0jdd3a3km2a diff --git a/scripts/gamecontroller.gd b/scripts/gamecontroller.gd index e7c7477..216245d 100644 --- a/scripts/gamecontroller.gd +++ b/scripts/gamecontroller.gd @@ -4,6 +4,8 @@ extends Node2D signal playerDamage +var score := 0 + # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. @@ -24,3 +26,8 @@ func _on_trigger(effect: Variant, body: Variant) -> void: func onBulletHitSignal(body: Node, bullet: Bullet): body.queue_free() +func onCoinCollected(body, coin: Coin): + if body is Player: + score += 1 + coin.queue_free() + diff --git a/scripts/player.gd b/scripts/player.gd index 835bbe9..19714cc 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -94,12 +94,12 @@ func handle_movement(delta: float): func handle_input(): # Handle jump. - if Input.is_action_just_pressed("ui_accept") and is_on_floor(): + if Input.is_action_just_pressed("jump") and is_on_floor(): jump_buffer.start() # Get the input direction and handle the movement/deceleration. # As good practice, you should replace UI actions with custom gameplay actions. - direction = Input.get_axis("ui_left", "ui_right") + direction = Input.get_axis("move_left", "move_right") if direction > 0: facing = FaceDirection.RIGHT diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index eb681c6..54fca4c 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -5,25 +5,36 @@ const bullet_scene = preload("res://scenes/bullet.tscn") @onready var game: Node2D = $".." @onready var triggers: Node2D = $"../triggers" +@onready var coins: Node2D = $"../coins" + var MAX_BULLET := 50 var available_bullets = [] +var score := 0 + func _ready() -> void: for i in range(MAX_BULLET): var new_bullet = bullet_scene.instantiate() new_bullet.bulletHitSignal.connect(game.onBulletHitSignal) + print(new_bullet.bullet_graphic) available_bullets.push_front(new_bullet) if triggers: for trig in triggers.get_children(): if trig is Trigger: trig.areaTriggerSignal.connect(game._on_trigger) + + if coins: + for coin in coins.get_children(): + if coin is Coin: + coin.coinCollectedSignal.connect(game.onCoinCollected) func make_bullet(start_position: Transform2D, speed: int): var new_bullet = bullet_factory(start_position, speed) if new_bullet: owner.add_child(new_bullet) + new_bullet.setSpeed(speed) func reload_bullet(bullet: Bullet): available_bullets.push(bullet) @@ -31,7 +42,6 @@ func reload_bullet(bullet: Bullet): func bullet_factory(start_position: Transform2D, speed: int) -> Bullet: var shot_bullet = available_bullets.pop_back() shot_bullet.global_transform = start_position - shot_bullet.setSpeed(speed) available_bullets.push_front(shot_bullet)