ADD: music integration.
parent
af4f5062b7
commit
728cd1b766
|
@ -13,4 +13,4 @@ func _process(_delta):
|
|||
|
||||
func _on_body_entered(body):
|
||||
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 player_position
|
||||
var strikes: bool = false
|
||||
var music = ''
|
||||
|
||||
func _init(myname, ppos):
|
||||
func _init(myname, ppos, mymusic):
|
||||
checkpoint_name = myname
|
||||
player_position = ppos
|
||||
music = mymusic
|
||||
|
||||
var m_checkpoints = []
|
||||
|
||||
func _ready():
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func reset():
|
||||
m_checkpoints.clear()
|
||||
|
||||
func add_checkpoint(name, pos):
|
||||
func add_checkpoint(myname, pos, music):
|
||||
for cp in m_checkpoints:
|
||||
if cp.checkpoint_name == name:
|
||||
if cp.checkpoint_name == myname:
|
||||
return
|
||||
var strikes = false
|
||||
if m_checkpoints.is_empty() == false:
|
||||
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
|
||||
|
||||
func has_checkpoint():
|
||||
|
|
|
@ -6,24 +6,26 @@ func _ready():
|
|||
var cp = CheckPoint.get_checkpoint()
|
||||
$Sandbox/Player/Actor.global_position = cp.player_position
|
||||
$Sandbox.strike_enabled = cp.strikes
|
||||
|
||||
var msg = preload("res://MsgBox/msg_box.tscn").instantiate()
|
||||
$Sandbox/Canvas.add_child(msg)
|
||||
msg.enable('Hello prisoner', '
|
||||
Hello prisoner,
|
||||
Our spaceship is under attack, but don\'t worry,
|
||||
you will be executed at time, as soon as we escape.
|
||||
Good luck !
|
||||
')
|
||||
if cp.music != '':
|
||||
Music.play(cp.music)
|
||||
else:
|
||||
var msg = preload("res://MsgBox/msg_box.tscn").instantiate()
|
||||
$Sandbox/Canvas.add_child(msg)
|
||||
msg.enable('Hello prisoner', '
|
||||
Hello prisoner,
|
||||
Our spaceship is under attack, but don\'t worry,
|
||||
you will be executed at time, as soon as we escape.
|
||||
Good luck !
|
||||
')
|
||||
|
||||
func _start():
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
|
||||
func _on_area_2d_body_entered(body):
|
||||
func _on_area_2d_body_entered(_body):
|
||||
$Sandbox.strike_enabled = true
|
||||
if CheckPoint.has_checkpoint():
|
||||
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="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://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://dw7khu8cvs50n" path="res://MusicArea/music_area.tscn" id="8_ag3pa"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8v3w3"]
|
||||
size = Vector2(332, 210)
|
||||
|
@ -145,7 +146,36 @@ position = Vector2(670, 4577)
|
|||
[node name="CheckPointArea2" parent="." instance=ExtResource("7_jpeg0")]
|
||||
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"]
|
||||
|
||||
[editable path="Sandbox"]
|
||||
[editable path="Sandbox/Player"]
|
||||
[editable path="MusicArea"]
|
||||
[editable path="MusicArea2"]
|
||||
[editable path="MusicArea3"]
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
extends Control
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
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
|
||||
|
||||
func _on_button_pressed():
|
||||
|
|
|
@ -8,7 +8,7 @@ var m_bodies = []
|
|||
func _ready():
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
func _process(_delta):
|
||||
pass
|
||||
|
||||
func _on_body_entered(body):
|
||||
|
|
|
@ -15,7 +15,7 @@ var m_pages = []
|
|||
func _ready():
|
||||
pass
|
||||
|
||||
func _process(delta):
|
||||
func _process(_delta):
|
||||
if Input.is_action_just_pressed("ui_accept"):
|
||||
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]
|
||||
|
||||
CheckPoint="*res://Checkpoint/CheckPoint.gd"
|
||||
Music="*res://Music/music.gd"
|
||||
|
||||
[input]
|
||||
|
||||
|
|
Loading…
Reference in New Issue