From 462b0fc4b0aeae9adf9377cbcb649ffa9c9a37e4 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 13 Feb 2026 14:30:35 +0000 Subject: [PATCH] goose_talk function now passes index_frame attribute to set which phrase will display from the spritesheet. --- scenes/event_bus.gd | 2 +- scenes/goose.gd | 8 ++++---- scenes/goose.tscn | 2 +- scenes/main.gd | 8 ++++++-- scenes/player.gd | 2 +- sprites/bubble.png | Bin 688 -> 1684 bytes wave.gd | 7 +++---- 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/scenes/event_bus.gd b/scenes/event_bus.gd index 55c37f7..b87a513 100644 --- a/scenes/event_bus.gd +++ b/scenes/event_bus.gd @@ -8,6 +8,6 @@ signal enemy_died() signal enemy_hit(value: int) signal initialize_shieldbar() signal start_game() -signal goose_talk() +signal goose_talk(frame_index: int) @warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations diff --git a/scenes/goose.gd b/scenes/goose.gd index 002038e..1d29420 100644 --- a/scenes/goose.gd +++ b/scenes/goose.gd @@ -5,18 +5,18 @@ func _ready() -> void: EventBus.goose_talk.connect(_on_goose_talk) -func _on_goose_talk(): +func _on_goose_talk(frame_index: int): print("QUACK") - self.show() + self.show() + $DapperGoose/Bubble.set_frame(frame_index) var tween = create_tween() tween.tween_property(self, "position:x", position.x - 50, .5).set_ease(tween.EASE_OUT) await tween.finished $DapperGoose/Bubble.show() await get_tree().create_timer(3).timeout $DapperGoose/Bubble.hide() - + tween = create_tween() tween.tween_property(self, "position:x", position.x + 50, .5).set_ease(tween.EASE_IN) await tween.finished self.hide() - diff --git a/scenes/goose.tscn b/scenes/goose.tscn index 78019e3..8b22310 100644 --- a/scenes/goose.tscn +++ b/scenes/goose.tscn @@ -14,9 +14,9 @@ script = ExtResource("1_wf0t2") texture = ExtResource("1_wo8sg") [node name="Bubble" type="Sprite2D" parent="DapperGoose" unique_id=2012258473] -visible = false position = Vector2(-108, -21) texture = ExtResource("3_g7ad0") +hframes = 3 [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1718121082] position = Vector2(-18.5, 1) diff --git a/scenes/main.gd b/scenes/main.gd index e70f498..3b97277 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -104,16 +104,20 @@ func new_game(): # Tell the shield to recharge. # EventBus.initialize_shieldbar.emit() # await EventBus.initialize_shieldbar - + # instantiate the Player # await get_tree().create_timer(1).timeout instance = player.instantiate() add_child(instance) $Player.start() + + # Do some DapperGoose talk + await get_tree().create_timer(1.5).timeout + EventBus.goose_talk.emit(2) # Tell the enemies to spawn! #await get_tree().create_timer(.5).timeout - $Wave.spawn_enemies() + $Wave.spawn_enemies() # Tell the game we're playing. diff --git a/scenes/player.gd b/scenes/player.gd index e22c272..1e4c85c 100644 --- a/scenes/player.gd +++ b/scenes/player.gd @@ -42,7 +42,7 @@ func start(): $Ship.show() position = Vector2(screensize.x / 2, screensize.y) var tween = create_tween() - tween.tween_property(self, "position:y", 48 * -1, .75).as_relative() + tween.tween_property(self, "position:y", 120 * -1, 1).as_relative() await tween.finished $GunCooldown.wait_time = cooldown set_shield(max_shield) diff --git a/sprites/bubble.png b/sprites/bubble.png index f9809b51a0222b2b966087fd25aa26a96486654f..f6c82fe6b73b355d2f1241dd50d947d47eabcedf 100644 GIT binary patch literal 1684 zcmaKtdpy&77{`C+l1sX4beV*mkaQ(ZE}00mEsqFiE-=}l>pXvapXc*>Ua#kQzTemDd4J>GkWQNFThsvn z&~!fT;0^!^Brx_@RRPaU3x)BZQwVo=vIi=9woL(m3ewr(=&5U2LT*DZ%Ssz~KfWg0 z4Wg#E&)N>T-eJ?xHP-7krno_9mnn_dn}%qr@0ZY?)h!G^^Z=Df&xzq^g7yC2NF3o} zend2$*ChX7)y}Ipa=}n6@v_GC5la$HZU3ERR z+e+qYV0O<<=vo?{&mvxM%}#Bd6>|qZI!zpY$2WZsi7T{p)yNyLnZc3KS^B7M?-xr& zoHiUftwbE=^24b;c7~lH>i#^hmz&Z-9*%Vkj66__e)*$ylY1Y;BxzRmS6_hKyG2iY z#^fG%tdd#6Z*Agxnmch|5Ba@k{1gg!$8qIxlp5X93ljDT=y46^bj(Cf@zvehj**gW z&FzuYgrM>2tu}{*8}e#&uQ##p2Iy?rQ|cU9)bZ7vRETm9h4-AqB6P>wW&*-?FSM07%7gv>I}KmsNx+j*)L>uD+Lm&%LUdOqCY;VJf3MDuRBb zSG~Kea`FaX+QxHPw6wxZMJ|iTC(qo4Ke2D83Z6;bJ*8QX(ZZoHmzzCsJ=ck}XW<9W zX6jocoraU}Oj+@c08UTHx9X_mWNV*uFYGmmw6r-5w%K;g;Ih-7uEVcr_Dg#Xl=?n= zT%}4`sH<)@s=w#uC|W?-)zfgDuWh#6N$jY9ih|3bfkw4^iZd$5-EM}9*rkT*O!M!? zxtmR;S(VNAc}mC>A0%@!FJ8x_;fj`Ht3Uk8&YAc17lwK z2L-jrdHx;BezmAt=6C@=d8pOZqH9gNtiN@0#6+8@Yg}^+jX2*UWQOeJ3b@{f zVNAFzxOE7L@tBywyFTiMDJz{^jFLJ4` zT~88Q3mg2D6k&VLu`l&heJ!s(JHT4Nw)}R0I^CxT#H3ZbQQ8-%1*?D~tX_k!6wGTE zHskZCO{W9Hc?8*YMD4BR946D*AINc0243va0-EznjY&)lk=Ci!vR)1@{8EAm=^^|% z!QxYrflLSzrXrD{my4{+8-UA#8jNNATFr6g={bphwZqL%5KoNbuzM@)#e^|sg-7OLbmu+EXIKLsRp4ShGv zUZMuGmdbz)SxIwG7cw$IDF7w%bD}V5SbYalI%s}FiUQ)#hbUkEDS|+uHd9VY9rx3x zLk@%Y%e0gs_V~VhXI*Zql!9;fFkht<=$klGJPpByPlU# zQ*~Uv-_!w;FjG(FiwjZ0VQ)2J0M^g9wEZvWKM-KrrXHJx1^@s6{;dfp00001b5ch_0Itp) z=>Px%YDq*vRCt{2oIO&*Fc3x!!%cDonv|(?htTH`R5=8FatCTknjC?%ga$DhdH*D> zSYm&#Vr(HR&)=*i1v5+jE+ zeD)+{w_%b0By|AU^(1Gx{E|oNAnLadoJUgngp_w9`D3L6AE>m?q@%R>!KIx{I!en} zP+kIn^Z+0|07wr2(gT3>03ba8al^~P+xypa+;3*ba*q4W>{vQp_K~+M`=#2ZzO`#e zkC>;%jcY_YJ(u2dPJrkNb_epVZciA=>~giwSDq zrIbRI5HA_hwJ4~uTEXJT2`&Iw91Wx<>5v`(qz3@$0YG{HkRAY}2LR~-kkX}>lt4c- z>DCuefesg5l$XI!A!enc#Pm`99w|zU4^3}Or@Mt+M?01Zfq%&0gv&o> WzJ9@wI(Aq90000