Skip to content

Commit

Permalink
feat: new BGM, fix game over trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
turtle85917 committed Mar 24, 2024
1 parent c5349a1 commit ec3cb36
Show file tree
Hide file tree
Showing 12 changed files with 54 additions and 44 deletions.
6 changes: 0 additions & 6 deletions Prefabs/Fruit.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ physics_material_override = SubResource("PhysicsMaterial_vl8n4")
max_contacts_reported = 9999
contact_monitor = true
script = ExtResource("2_6vuy6")
fruitType = null
isMerged = null

[node name="Sprite" type="Sprite2D" parent="."]
scale = Vector2(1.5, 1.5)
Expand All @@ -68,8 +66,4 @@ process_material = SubResource("ParticleProcessMaterial_iy6rh")
one_shot = true
explosiveness = 1.0

[node name="Timer" type="Timer" parent="."]
wait_time = 3.0
one_shot = true

[connection signal="body_entered" from="." to="." method="_on_body_entered"]
12 changes: 1 addition & 11 deletions Scenes/Game.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://b16xovlfqqyik"]
[gd_scene load_steps=14 format=3 uid="uid://b16xovlfqqyik"]

[ext_resource type="Script" path="res://Scripts/Game/Game.gd" id="1_5beoy"]
[ext_resource type="Texture2D" uid="uid://7tuwpnpttdrm" path="res://Sprites/Case/case.png" id="1_yq2lv"]
Expand All @@ -20,9 +20,6 @@ size = Vector2(12, 424)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e4oks"]
size = Vector2(344, 12)

[sub_resource type="RectangleShape2D" id="RectangleShape2D_ap1rc"]
size = Vector2(356, 8)

[node name="Game" type="Node2D"]
script = ExtResource("1_5beoy")

Expand Down Expand Up @@ -54,13 +51,6 @@ shape = SubResource("RectangleShape2D_af3tb")
position = Vector2(0, 281)
shape = SubResource("RectangleShape2D_e4oks")

[node name="LimitLine" type="Area2D" parent="Case"]
position = Vector2(0, -137)

[node name="Collision" type="CollisionShape2D" parent="Case/LimitLine"]
position = Vector2(6, -4)
shape = SubResource("RectangleShape2D_ap1rc")

[node name="Fruits" type="Node2D" parent="."]

[node name="Player" type="Sprite2D" parent="."]
Expand Down
1 change: 1 addition & 0 deletions Scenes/GameOver.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ horizontal_alignment = 1
vertical_alignment = 1

[node name="Save Screenshot Button" type="TextureButton" parent="Control"]
layout_mode = 0
offset_left = 915.0
offset_top = 520.0
offset_right = 1083.0
Expand Down
8 changes: 7 additions & 1 deletion Scenes/SoundManager.tscn
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[gd_scene load_steps=4 format=3 uid="uid://bkiuw8lrfps6d"]
[gd_scene load_steps=5 format=3 uid="uid://bkiuw8lrfps6d"]

[ext_resource type="Script" path="res://Scripts/Common/SoundManager.gd" id="1_ngouc"]
[ext_resource type="AudioStream" uid="uid://dxcep543a14we" path="res://Sounds/pop.wav" id="2_wcg53"]
[ext_resource type="AudioStream" uid="uid://dxuewytki77ui" path="res://Sounds/click.mp3" id="3_gi653"]
[ext_resource type="AudioStream" uid="uid://rwi7fqbmjncr" path="res://Sounds/BGM.mp3" id="4_npdx1"]

[node name="SoundMananger" type="Node"]
script = ExtResource("1_ngouc")
Expand All @@ -14,3 +15,8 @@ volume_db = -14.0
[node name="Click" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_gi653")
volume_db = -7.0

[node name="BGM" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_npdx1")
volume_db = -20.0
bus = &"Bgm"
10 changes: 10 additions & 0 deletions Scripts/Common/SoundManager.gd
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
extends Node

@onready var BGM:AudioStreamPlayer = get_node("BGM");

func playBGM():
BGM.play()
func replayBGM():
BGM.stop()
BGM.play()
func stopBGM():
BGM.stop()

func playSFX(sfxName:String):
var audioStream:AudioStreamPlayer = get_node(sfxName);
if(audioStream.playing): audioStream.stream_paused = true;
Expand Down
27 changes: 3 additions & 24 deletions Scripts/Game/Fruit.gd
Original file line number Diff line number Diff line change
@@ -1,39 +1,18 @@
extends RigidBody2D

@onready var game = get_owner();
@export var fruitType:FruitManager.FruitType;
@export var isMerged = false;

@onready var game = get_owner();
@onready var limitLine = game.get_node("Case/LimitLine");
@onready var timer:Timer = $Timer;

var tween:Tween = null;
var isEnteredLine:bool = false;

func _ready():
limitLine.connect("body_entered", _on_limit_line_entered);
limitLine.connect("body_exited", _on_limit_line_exited);
timer.connect("timeout", _timeout);

func _physics_process(_delta):
if(!freeze):
if(transform.origin.y < -185 && linear_velocity.y < 0.5):
game.isGameOver = true;
if(transform.origin.y > 300):
game.isGameOver = true;

func _timeout():
if(isEnteredLine):
game.isGameOver = true;

func _on_limit_line_entered(body:Node2D):
if(body.name != name): return;
isEnteredLine = true;
timer.start();

func _on_limit_line_exited(body:Node2D):
if(body.name != name): return;
isEnteredLine = false;
timer.stop();

func _on_body_entered(body:Node):
if(fruitType == FruitManager.FruitType.Watermelon): return;
if(body.get_groups().has("Fruit") && body.fruitType == fruitType && !isMerged):
Expand Down
2 changes: 2 additions & 0 deletions Scripts/Game/Game.gd
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ func _ready():
bestScore = SaveManager.loadScore();
bestScoreText.text = "​%s" % bestScore;

SoundManager.playBGM();

func _process(_delta):
scoreText.text = "​%s" % score;
if(bestScore < score):
Expand Down
1 change: 1 addition & 0 deletions Scripts/Game/Player.gd
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ func _physics_process(_delta):
isMoving = false;
fruitNode.freeze = false;
fruitNode.get_node("Collision").disabled = false;
SoundManager.playSFX("Pop")
get_tree().create_timer(0.5).connect("timeout", func():createFruit());

func createFruit():
Expand Down
2 changes: 2 additions & 0 deletions Scripts/GameOver/GameOver.gd
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ func _ready():
func _on_restart_button_pressed():
get_tree().reload_current_scene();
SoundManager.playSFX("Click");
SoundManager.replayBGM();

func _on_back_button_pressed():
get_tree().change_scene_to_file("res://Scenes/Main.tscn");
SoundManager.playSFX("Click");
SoundManager.stopBGM();

func _on_save_screenshot_button_pressed():
const pathname = "Screenshots";
Expand Down
Binary file added Sounds/BGM.mp3
Binary file not shown.
19 changes: 19 additions & 0 deletions Sounds/BGM.mp3.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[remap]

importer="mp3"
type="AudioStreamMP3"
uid="uid://rwi7fqbmjncr"
path="res://.godot/imported/BGM.mp3-da265651f70135692ca2214316f853f5.mp3str"

[deps]

source_file="res://Sounds/BGM.mp3"
dest_files=["res://.godot/imported/BGM.mp3-da265651f70135692ca2214316f853f5.mp3str"]

[params]

loop=true
loop_offset=0.0
bpm=0.0
beat_count=0
bar_beats=4
10 changes: 8 additions & 2 deletions Sounds/bus.tres
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://w7wr70ys1gh"]

[resource]
bus/1/name = &"Sfx"
bus/1/name = &"Bgm"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -11.9576
bus/1/volume_db = -2.71024
bus/1/send = &"Master"
bus/2/name = &"Sfx"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = -11.9576
bus/2/send = &"Master"

0 comments on commit ec3cb36

Please sign in to comment.