ADD: music integration.
parent
af4f5062b7
commit
728cd1b766
|
@ -13,4 +13,4 @@ func _process(_delta):
|
||||||
|
|
||||||
func _on_body_entered(body):
|
func _on_body_entered(body):
|
||||||
if body in get_tree().get_nodes_in_group('player'):
|
if body in get_tree().get_nodes_in_group('player'):
|
||||||
CheckPoint.add_checkpoint(name, body.global_position)
|
CheckPoint.add_checkpoint(name, body.global_position, Music.m_current)
|
||||||
|
|
|
@ -4,30 +4,32 @@ class CheckPointData:
|
||||||
var checkpoint_name
|
var checkpoint_name
|
||||||
var player_position
|
var player_position
|
||||||
var strikes: bool = false
|
var strikes: bool = false
|
||||||
|
var music = ''
|
||||||
|
|
||||||
func _init(myname, ppos):
|
func _init(myname, ppos, mymusic):
|
||||||
checkpoint_name = myname
|
checkpoint_name = myname
|
||||||
player_position = ppos
|
player_position = ppos
|
||||||
|
music = mymusic
|
||||||
|
|
||||||
var m_checkpoints = []
|
var m_checkpoints = []
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func reset():
|
func reset():
|
||||||
m_checkpoints.clear()
|
m_checkpoints.clear()
|
||||||
|
|
||||||
func add_checkpoint(name, pos):
|
func add_checkpoint(myname, pos, music):
|
||||||
for cp in m_checkpoints:
|
for cp in m_checkpoints:
|
||||||
if cp.checkpoint_name == name:
|
if cp.checkpoint_name == myname:
|
||||||
return
|
return
|
||||||
var strikes = false
|
var strikes = false
|
||||||
if m_checkpoints.is_empty() == false:
|
if m_checkpoints.is_empty() == false:
|
||||||
strikes = m_checkpoints.back().strikes
|
strikes = m_checkpoints.back().strikes
|
||||||
m_checkpoints.push_back(CheckPointData.new(name, pos))
|
m_checkpoints.push_back(CheckPointData.new(myname, pos, music))
|
||||||
m_checkpoints.back().strikes = strikes
|
m_checkpoints.back().strikes = strikes
|
||||||
|
|
||||||
func has_checkpoint():
|
func has_checkpoint():
|
||||||
|
|
|
@ -6,7 +6,9 @@ func _ready():
|
||||||
var cp = CheckPoint.get_checkpoint()
|
var cp = CheckPoint.get_checkpoint()
|
||||||
$Sandbox/Player/Actor.global_position = cp.player_position
|
$Sandbox/Player/Actor.global_position = cp.player_position
|
||||||
$Sandbox.strike_enabled = cp.strikes
|
$Sandbox.strike_enabled = cp.strikes
|
||||||
|
if cp.music != '':
|
||||||
|
Music.play(cp.music)
|
||||||
|
else:
|
||||||
var msg = preload("res://MsgBox/msg_box.tscn").instantiate()
|
var msg = preload("res://MsgBox/msg_box.tscn").instantiate()
|
||||||
$Sandbox/Canvas.add_child(msg)
|
$Sandbox/Canvas.add_child(msg)
|
||||||
msg.enable('Hello prisoner', '
|
msg.enable('Hello prisoner', '
|
||||||
|
@ -19,11 +21,11 @@ func _ready():
|
||||||
func _start():
|
func _start():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
func _on_area_2d_body_entered(_body):
|
||||||
func _on_area_2d_body_entered(body):
|
|
||||||
$Sandbox.strike_enabled = true
|
$Sandbox.strike_enabled = true
|
||||||
if CheckPoint.has_checkpoint():
|
if CheckPoint.has_checkpoint():
|
||||||
CheckPoint.get_checkpoint().strikes = true
|
CheckPoint.get_checkpoint().strikes = true
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=9 format=3 uid="uid://b33qjw88n8ojq"]
|
[gd_scene load_steps=10 format=3 uid="uid://b33qjw88n8ojq"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://ccjenj1vqgosm" path="res://Sandbox/sandbox.tscn" id="1_rftkk"]
|
[ext_resource type="PackedScene" uid="uid://ccjenj1vqgosm" path="res://Sandbox/sandbox.tscn" id="1_rftkk"]
|
||||||
[ext_resource type="Script" path="res://Levels/level_intro.gd" id="1_uhhgb"]
|
[ext_resource type="Script" path="res://Levels/level_intro.gd" id="1_uhhgb"]
|
||||||
|
@ -7,6 +7,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://d30oryxv0w7pf" path="res://Door/door.tscn" id="5_6em12"]
|
[ext_resource type="PackedScene" uid="uid://d30oryxv0w7pf" path="res://Door/door.tscn" id="5_6em12"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c5f7m5oi32kr5" path="res://DoorCommand/door_command.tscn" id="6_uuoen"]
|
[ext_resource type="PackedScene" uid="uid://c5f7m5oi32kr5" path="res://DoorCommand/door_command.tscn" id="6_uuoen"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ba7detpptxamr" path="res://CheckPointArea/check_point_area.tscn" id="7_jpeg0"]
|
[ext_resource type="PackedScene" uid="uid://ba7detpptxamr" path="res://CheckPointArea/check_point_area.tscn" id="7_jpeg0"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dw7khu8cvs50n" path="res://MusicArea/music_area.tscn" id="8_ag3pa"]
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8v3w3"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8v3w3"]
|
||||||
size = Vector2(332, 210)
|
size = Vector2(332, 210)
|
||||||
|
@ -145,7 +146,36 @@ position = Vector2(670, 4577)
|
||||||
[node name="CheckPointArea2" parent="." instance=ExtResource("7_jpeg0")]
|
[node name="CheckPointArea2" parent="." instance=ExtResource("7_jpeg0")]
|
||||||
position = Vector2(670, 1530)
|
position = Vector2(670, 1530)
|
||||||
|
|
||||||
|
[node name="MusicArea" parent="." instance=ExtResource("8_ag3pa")]
|
||||||
|
position = Vector2(650, 402)
|
||||||
|
music = "prepare"
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" parent="MusicArea" index="0"]
|
||||||
|
position = Vector2(21.5, 0)
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="MusicArea2" parent="." instance=ExtResource("8_ag3pa")]
|
||||||
|
position = Vector2(652, 995)
|
||||||
|
music = "speed_is_the_key"
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" parent="MusicArea2" index="0"]
|
||||||
|
position = Vector2(21.5, 0)
|
||||||
|
debug_color = Color(0.627451, 0.823529, 0.270588, 0.419608)
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
|
[node name="MusicArea3" parent="." instance=ExtResource("8_ag3pa")]
|
||||||
|
position = Vector2(655, 2096)
|
||||||
|
music = "fight_or_die"
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" parent="MusicArea3" index="0"]
|
||||||
|
position = Vector2(21.5, 0)
|
||||||
|
debug_color = Color(0.627451, 0.823529, 0.270588, 0.419608)
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
|
|
||||||
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
[connection signal="body_entered" from="Area2D" to="." method="_on_area_2d_body_entered"]
|
||||||
|
|
||||||
[editable path="Sandbox"]
|
[editable path="Sandbox"]
|
||||||
[editable path="Sandbox/Player"]
|
[editable path="Sandbox/Player"]
|
||||||
|
[editable path="MusicArea"]
|
||||||
|
[editable path="MusicArea2"]
|
||||||
|
[editable path="MusicArea3"]
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready():
|
func _ready():
|
||||||
pass # Replace with function body.
|
pass
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
func _process(_delta):
|
||||||
func _process(delta):
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _on_button_pressed():
|
func _on_button_pressed():
|
||||||
|
|
|
@ -8,7 +8,7 @@ var m_bodies = []
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _on_body_entered(body):
|
func _on_body_entered(body):
|
||||||
|
|
|
@ -15,7 +15,7 @@ var m_pages = []
|
||||||
func _ready():
|
func _ready():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
if Input.is_action_just_pressed("ui_accept"):
|
if Input.is_action_just_pressed("ui_accept"):
|
||||||
self._on_button_pressed()
|
self._on_button_pressed()
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,49 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
var m_music = null
|
||||||
|
var m_player : AudioStreamPlayer = null
|
||||||
|
var m_current = ''
|
||||||
|
var m_stop_timer = 0.0
|
||||||
|
var m_stop_time = 0.5
|
||||||
|
var m_stop = false
|
||||||
|
var m_next = null
|
||||||
|
|
||||||
|
var m_titles = [
|
||||||
|
'fight_or_die'
|
||||||
|
]
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
m_player = AudioStreamPlayer.new()
|
||||||
|
m_player.process_mode = Node.PROCESS_MODE_ALWAYS
|
||||||
|
add_child(m_player)
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if m_stop:
|
||||||
|
var t = m_stop_timer / m_stop_time
|
||||||
|
m_player.volume_db = t * -16.0
|
||||||
|
if m_stop_timer >= m_stop_time:
|
||||||
|
m_stop = false
|
||||||
|
m_stop_timer = 0.0
|
||||||
|
if m_next:
|
||||||
|
play(m_next)
|
||||||
|
|
||||||
|
m_stop_timer += delta
|
||||||
|
|
||||||
|
func next(music_name):
|
||||||
|
if m_player.playing:
|
||||||
|
m_next = music_name
|
||||||
|
m_stop = true
|
||||||
|
else:
|
||||||
|
play(music_name)
|
||||||
|
|
||||||
|
func play(music_name):
|
||||||
|
m_player.volume_db = 0.0
|
||||||
|
m_current = music_name
|
||||||
|
var data = load("res://Music/" + music_name + ".ogg")
|
||||||
|
data.loop = true
|
||||||
|
m_player.stream = data
|
||||||
|
m_player.seek(0)
|
||||||
|
m_player.play()
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,14 @@
|
||||||
|
extends Area2D
|
||||||
|
|
||||||
|
@export var music : String = Music.m_titles[0]
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _process(_delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_entered(body):
|
||||||
|
if body in get_tree().get_nodes_in_group('player'):
|
||||||
|
Music.next(music)
|
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dw7khu8cvs50n"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://MusicArea/music_area.gd" id="1_60yhl"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_c834i"]
|
||||||
|
size = Vector2(383, 20)
|
||||||
|
|
||||||
|
[node name="MusicArea" type="Area2D"]
|
||||||
|
script = ExtResource("1_60yhl")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource("RectangleShape2D_c834i")
|
||||||
|
debug_color = Color(0.627451, 0.823529, 0.270588, 0.419608)
|
||||||
|
|
||||||
|
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
|
@ -18,6 +18,7 @@ config/icon="res://icon.svg"
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
CheckPoint="*res://Checkpoint/CheckPoint.gd"
|
CheckPoint="*res://Checkpoint/CheckPoint.gd"
|
||||||
|
Music="*res://Music/music.gd"
|
||||||
|
|
||||||
[input]
|
[input]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue