it's kinda fun now
This commit is contained in:
1 parent
6cedd51ec1
commit
b55b68bcf2
9 files changed
+200
-55
No files matched your search
@@ -0,0 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://dduyumwk5v1ge"]
|
||||
|
||||
[ext_resource type="AudioStream" uid="uid://b8n6p428csquv" path="res://assets/audio/full/eine-kleine-click.wav" id="1_048mw"]
|
||||
|
||||
[node name="ClickTrack" type="AudioStreamPlayer2D" unique_id=1931221522]
|
||||
stream = ExtResource("1_048mw")
|
||||
@@ -0,0 +1,48 @@
|
||||
#@tool
|
||||
#@icon(icon_path: String)
|
||||
#class_name MyNode
|
||||
extends Node
|
||||
## Documentation comments
|
||||
|
||||
## signal
|
||||
## enum
|
||||
## const
|
||||
## @export var
|
||||
var musicians: Array[Node]
|
||||
var musician_lights: Array[Node]
|
||||
|
||||
@onready var rhythm_manager: RhythmManager = %RhythmManager
|
||||
@onready var conductor: AnimatedSprite2D = $Conductor
|
||||
@onready var conductor_light: PointLight2D = %ConductorLight
|
||||
@onready var click_track: AudioStreamPlayer2D = %ClickTrack
|
||||
|
||||
## OVERRIDES
|
||||
|
||||
func _ready() -> void:
|
||||
musicians = get_tree().get_nodes_in_group("musicians")
|
||||
musician_lights = get_tree().get_nodes_in_group("musician_lights")
|
||||
rhythm_manager.connect("song_started", on_song_started)
|
||||
#func _process(delta: float) -> void:
|
||||
#pass
|
||||
#
|
||||
#func _physics_process(delta: float) -> void:
|
||||
#pass
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("ready"):
|
||||
conductor.play("default")
|
||||
conductor_light.visible = true
|
||||
click_track.play()
|
||||
## CORE
|
||||
|
||||
## PRIVATE/HELPER
|
||||
|
||||
## RECEIVERS
|
||||
|
||||
func on_song_started() -> void:
|
||||
for musician in musicians:
|
||||
musician.play("default")
|
||||
for light in musician_lights:
|
||||
light.visible = true
|
||||
|
||||
## SETTERS/GETTERS
|
||||
@@ -0,0 +1 @@
|
||||
uid://bjv7i1kmivfai
|
||||
@@ -1,15 +1,16 @@
|
||||
[gd_scene format=4 uid="uid://irgt7rn5kfap"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bjv7i1kmivfai" path="res://main.gd" id="1_5vw27"]
|
||||
[ext_resource type="Texture2D" uid="uid://42h7vrqekyma" path="res://assets/symphonyguys.png" id="1_ig7tw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cs47f2rurekyx" path="res://assets/floor_wood_01-32x16.png" id="2_0xm2m"]
|
||||
[ext_resource type="AudioStream" uid="uid://bflw7me3q03gf" path="res://assets/audio/full/eine-kleine-full.wav" id="2_7mycd"]
|
||||
[ext_resource type="AudioStream" uid="uid://rn5a5gjgvn4k" path="res://assets/audio/full/eine-kleine-viol-full.wav" id="3_7mycd"]
|
||||
[ext_resource type="AudioStream" uid="uid://d3qyd08xk7d3h" path="res://assets/audio/full/eine-kleine-cello-full.wav" id="4_272bh"]
|
||||
[ext_resource type="OccluderPolygon2D" uid="uid://inxtfgsnw5sq" path="res://resources/light_occluder_polygon.tres" id="5_4c57u"]
|
||||
[ext_resource type="AudioStream" uid="uid://bnypuodp8swg3" path="res://assets/audio/full/eine-kleine-bass-full.wav" id="5_5vw27"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1bvp3"]
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
region = Rect2(64, 0, 32, 32)
|
||||
[ext_resource type="Texture2D" uid="uid://d1li1mlxutaym" path="res://resources/point_light_texture.tres" id="5_kek77"]
|
||||
[ext_resource type="PackedScene" uid="uid://ojisu2jrshsp" path="res://rhythm_manager.tscn" id="7_272bh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dduyumwk5v1ge" path="res://click_track.tscn" id="11_efxa6"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_lquwl"]
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
@@ -23,13 +24,14 @@ region = Rect2(0, 0, 32, 32)
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
region = Rect2(32, 0, 32, 32)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1bvp3"]
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
region = Rect2(64, 0, 32, 32)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_7mycd"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_1bvp3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_lquwl")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
@@ -37,12 +39,31 @@ animations = [{
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_h2yge")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_1bvp3")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 8.0
|
||||
"speed": 4.0
|
||||
}]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_lquwl"]
|
||||
interpolation_mode = 2
|
||||
offsets = PackedFloat32Array(0.5, 0.8)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_4c57u"]
|
||||
gradient = SubResource("Gradient_lquwl")
|
||||
width = 96
|
||||
height = 48
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.85, 0.85)
|
||||
|
||||
[sub_resource type="OccluderPolygon2D" id="OccluderPolygon2D_4c57u"]
|
||||
polygon = PackedVector2Array(-1, 12, 1, 13, -2, 14, -4, 13)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ycdy4"]
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
region = Rect2(0, 160, 32, 32)
|
||||
@@ -86,21 +107,6 @@ animations = [{
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[sub_resource type="OccluderPolygon2D" id="OccluderPolygon2D_lquwl"]
|
||||
polygon = PackedVector2Array(0, 12, 4, 13, 0, 14, -4, 13)
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_lquwl"]
|
||||
interpolation_mode = 2
|
||||
offsets = PackedFloat32Array(0.5, 0.8)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_7mycd"]
|
||||
gradient = SubResource("Gradient_lquwl")
|
||||
width = 128
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.85, 0.85)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5vw27"]
|
||||
atlas = ExtResource("1_ig7tw")
|
||||
region = Rect2(192, 32, 32, 32)
|
||||
@@ -208,64 +214,101 @@ tile_size = Vector2i(32, 16)
|
||||
sources/5 = SubResource("TileSetAtlasSource_h2yge")
|
||||
|
||||
[node name="Main" type="Node2D" unique_id=1319338792]
|
||||
script = ExtResource("1_5vw27")
|
||||
|
||||
[node name="Camera2D" type="Camera2D" parent="." unique_id=1314238347]
|
||||
zoom = Vector2(4, 4)
|
||||
zoom = Vector2(8, 8)
|
||||
|
||||
[node name="Conductor" type="AnimatedSprite2D" parent="." unique_id=880231478]
|
||||
position = Vector2(40, 15)
|
||||
sprite_frames = SubResource("SpriteFrames_7mycd")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.51704574
|
||||
|
||||
[node name="FullAudio" type="AudioStreamPlayer2D" parent="Conductor" unique_id=1320626273]
|
||||
stream = ExtResource("2_7mycd")
|
||||
autoplay = true
|
||||
|
||||
[node name="ConductorLight" type="PointLight2D" parent="Conductor" unique_id=339554188]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
position = Vector2(5, 9)
|
||||
energy = 0.8
|
||||
shadow_enabled = true
|
||||
shadow_filter = 2
|
||||
shadow_filter_smooth = 7.6
|
||||
texture = SubResource("GradientTexture2D_4c57u")
|
||||
|
||||
[node name="ConductorOccluder" type="LightOccluder2D" parent="Conductor" unique_id=122003117]
|
||||
occluder = SubResource("OccluderPolygon2D_4c57u")
|
||||
|
||||
[node name="Musicians" type="Node2D" parent="." unique_id=237973745]
|
||||
|
||||
[node name="Viol" type="AnimatedSprite2D" parent="Musicians" unique_id=932682158]
|
||||
position = Vector2(-27, -4)
|
||||
[node name="Viol" type="AnimatedSprite2D" parent="Musicians" unique_id=932682158 groups=["musicians"]]
|
||||
position = Vector2(-18, 2)
|
||||
sprite_frames = SubResource("SpriteFrames_074og")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.6208535
|
||||
|
||||
[node name="ViolAudio" type="AudioStreamPlayer2D" parent="Musicians/Viol" unique_id=800067327]
|
||||
visible = false
|
||||
stream = ExtResource("3_7mycd")
|
||||
|
||||
[node name="LightOccluder2D" type="LightOccluder2D" parent="Musicians/Viol" unique_id=781715626]
|
||||
[node name="ViolOccluder" type="LightOccluder2D" parent="Musicians/Viol" unique_id=781715626]
|
||||
position = Vector2(1, 0)
|
||||
occluder = SubResource("OccluderPolygon2D_lquwl")
|
||||
occluder = ExtResource("5_4c57u")
|
||||
|
||||
[node name="PointLight2D" type="PointLight2D" parent="Musicians/Viol" unique_id=953248893]
|
||||
[node name="ViolLight" type="PointLight2D" parent="Musicians/Viol" unique_id=953248893 groups=["musician_lights"]]
|
||||
visible = false
|
||||
z_index = 100
|
||||
position = Vector2(8, 10)
|
||||
energy = 0.8
|
||||
shadow_enabled = true
|
||||
shadow_filter = 2
|
||||
shadow_filter_smooth = 7.6
|
||||
texture = SubResource("GradientTexture2D_7mycd")
|
||||
texture = ExtResource("5_kek77")
|
||||
|
||||
[node name="Cello" type="AnimatedSprite2D" parent="Musicians" unique_id=504793709]
|
||||
position = Vector2(-14, -28)
|
||||
[node name="Cello" type="AnimatedSprite2D" parent="Musicians" unique_id=504793709 groups=["musicians"]]
|
||||
position = Vector2(21, -18)
|
||||
sprite_frames = SubResource("SpriteFrames_dg77c")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.5045058
|
||||
|
||||
[node name="CelloAudio" type="AudioStreamPlayer2D" parent="Musicians/Cello" unique_id=526745522]
|
||||
visible = false
|
||||
stream = ExtResource("4_272bh")
|
||||
|
||||
[node name="Bass" type="AnimatedSprite2D" parent="Musicians" unique_id=1099071968]
|
||||
position = Vector2(-49, -19)
|
||||
[node name="CelloOccluder" type="LightOccluder2D" parent="Musicians/Cello" unique_id=1913557474]
|
||||
position = Vector2(1, 0)
|
||||
occluder = ExtResource("5_4c57u")
|
||||
|
||||
[node name="CelloLight" type="PointLight2D" parent="Musicians/Cello" unique_id=576926503 groups=["musician_lights"]]
|
||||
visible = false
|
||||
position = Vector2(10, 9)
|
||||
energy = 0.8
|
||||
shadow_enabled = true
|
||||
shadow_filter = 2
|
||||
shadow_filter_smooth = 7.6
|
||||
texture = ExtResource("5_kek77")
|
||||
|
||||
[node name="Bass" type="AnimatedSprite2D" parent="Musicians" unique_id=1099071968 groups=["musicians"]]
|
||||
position = Vector2(-45, -32)
|
||||
sprite_frames = SubResource("SpriteFrames_kq58d")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.30279997
|
||||
|
||||
[node name="BassAudio" type="AudioStreamPlayer2D" parent="Musicians/Bass" unique_id=1653394620]
|
||||
visible = false
|
||||
stream = ExtResource("5_5vw27")
|
||||
|
||||
[node name="BassOccluder" type="LightOccluder2D" parent="Musicians/Bass" unique_id=2068886055]
|
||||
position = Vector2(1, 0)
|
||||
occluder = ExtResource("5_4c57u")
|
||||
|
||||
[node name="BassLight" type="PointLight2D" parent="Musicians/Bass" unique_id=1562439646 groups=["musician_lights"]]
|
||||
visible = false
|
||||
position = Vector2(9, 9)
|
||||
energy = 0.8
|
||||
shadow_enabled = true
|
||||
shadow_filter = 2
|
||||
shadow_filter_smooth = 7.6
|
||||
texture = ExtResource("5_kek77")
|
||||
|
||||
[node name="Stage" type="TileMapLayer" parent="." unique_id=15466516]
|
||||
z_index = -10
|
||||
tile_map_data = PackedByteArray("AAD5//f/BQABAAQAAAD5//j/BQABAAQAAAD5//n/BQABAAQAAAD5//r/BQABAAQAAAD5//v/BQABAAQAAAD5//z/BQABAAQAAAD5//3/BQABAAQAAAD5//7/BQABAAQAAAD5////BQABAAQAAAD5/wAABQABAAQAAAD5/wEABQABAAQAAAD5/wIABQABAAQAAAD5/wMABQABAAQAAAD5/wQABQABAAQAAAD5/wUABQABAAQAAAD5/wYABQABAAQAAAD5/wcABQABAAQAAAD5/wgABQABAAQAAAD5/wkABQABAAQAAAD5/woABQABAAQAAAD6//f/BQABAAQAAAD6//j/BQABAAQAAAD6//n/BQABAAQAAAD6//r/BQABAAQAAAD6//v/BQABAAQAAAD6//z/BQABAAQAAAD6//3/BQABAAQAAAD6//7/BQABAAQAAAD6////BQABAAQAAAD6/wAABQABAAQAAAD6/wEABQABAAQAAAD6/wIABQABAAQAAAD6/wMABQABAAQAAAD6/wQABQABAAQAAAD6/wUABQABAAQAAAD6/wYABQABAAQAAAD6/wcABQABAAQAAAD6/wgABQABAAQAAAD6/wkABQABAAQAAAD6/woABQABAAQAAAD7//f/BQABAAQAAAD7//j/BQABAAQAAAD7//n/BQABAAQAAAD7//r/BQABAAQAAAD7//v/BQABAAQAAAD7//z/BQABAAQAAAD7//3/BQABAAQAAAD7//7/BQABAAQAAAD7////BQABAAQAAAD7/wAABQABAAQAAAD7/wEABQABAAQAAAD7/wIABQABAAQAAAD7/wMABQABAAQAAAD7/wQABQABAAQAAAD7/wUABQABAAQAAAD7/wYABQABAAQAAAD7/wcABQABAAQAAAD7/wgABQABAAQAAAD7/wkABQABAAQAAAD7/woABQABAAQAAAD8//f/BQABAAQAAAD8//j/BQABAAQAAAD8//n/BQABAAQAAAD8//r/BQABAAQAAAD8//v/BQABAAQAAAD8//z/BQABAAQAAAD8//3/BQABAAQAAAD8//7/BQABAAQAAAD8////BQABAAQAAAD8/wAABQABAAQAAAD8/wEABQABAAQAAAD8/wIABQABAAQAAAD8/wMABQABAAQAAAD8/wQABQABAAQAAAD8/wUABQABAAQAAAD8/wYABQABAAQAAAD8/wcABQABAAQAAAD8/wgABQABAAQAAAD8/wkABQABAAQAAAD8/woABQABAAQAAAD9//f/BQABAAQAAAD9//j/BQABAAQAAAD9//n/BQABAAQAAAD9//r/BQABAAQAAAD9//v/BQABAAQAAAD9//z/BQABAAQAAAD9//3/BQABAAQAAAD9//7/BQABAAQAAAD9////BQABAAQAAAD9/wAABQABAAQAAAD9/wEABQABAAQAAAD9/wIABQABAAQAAAD9/wMABQABAAQAAAD9/wQABQABAAQAAAD9/wUABQABAAQAAAD9/wYABQABAAQAAAD9/wcABQABAAQAAAD9/wgABQABAAQAAAD9/wkABQABAAQAAAD9/woABQABAAQAAAD+//f/BQABAAQAAAD+//j/BQABAAQAAAD+//n/BQABAAQAAAD+//r/BQABAAQAAAD+//v/BQABAAQAAAD+//z/BQABAAQAAAD+//3/BQABAAQAAAD+//7/BQABAAQAAAD+////BQABAAQAAAD+/wAABQABAAQAAAD+/wEABQABAAQAAAD+/wIABQABAAQAAAD+/wMABQABAAQAAAD+/wQABQABAAQAAAD+/wUABQABAAQAAAD+/wYABQABAAQAAAD+/wcABQABAAQAAAD+/wgABQABAAQAAAD+/wkABQABAAQAAAD+/woABQABAAQAAAD///f/BQABAAQAAAD///j/BQABAAQAAAD///n/BQABAAQAAAD///r/BQABAAQAAAD///v/BQABAAQAAAD///z/BQABAAQAAAD///3/BQABAAQAAAD///7/BQABAAQAAAD/////BQABAAQAAAD//wAABQABAAQAAAD//wEABQABAAQAAAD//wIABQABAAQAAAD//wMABQABAAQAAAD//wQABQABAAQAAAD//wUABQABAAQAAAD//wYABQABAAQAAAD//wcABQABAAQAAAD//wgABQABAAQAAAD//wkABQABAAQAAAD//woABQABAAQAAAAAAPf/BQABAAQAAAAAAPj/BQABAAQAAAAAAPn/BQABAAQAAAAAAPr/BQABAAQAAAAAAPv/BQABAAQAAAAAAPz/BQABAAQAAAAAAP3/BQABAAQAAAAAAP7/BQABAAQAAAAAAP//BQABAAQAAAAAAAAABQABAAQAAAAAAAEABQABAAQAAAAAAAIABQABAAQAAAAAAAMABQABAAQAAAAAAAQABQABAAQAAAAAAAUABQABAAQAAAAAAAYABQABAAQAAAAAAAcABQABAAQAAAAAAAgABQABAAQAAAAAAAkABQABAAQAAAAAAAoABQABAAQAAAABAPf/BQABAAQAAAABAPj/BQABAAQAAAABAPn/BQABAAQAAAABAPr/BQABAAQAAAABAPv/BQABAAQAAAABAPz/BQABAAQAAAABAP3/BQABAAQAAAABAP7/BQABAAQAAAABAP//BQABAAQAAAABAAAABQABAAQAAAABAAEABQABAAQAAAABAAIABQABAAQAAAABAAMABQABAAQAAAABAAQABQABAAQAAAABAAUABQABAAQAAAABAAYABQABAAQAAAABAAcABQABAAQAAAABAAgABQABAAQAAAABAAkABQABAAQAAAABAAoABQABAAQAAAACAPf/BQABAAQAAAACAPj/BQABAAQAAAACAPn/BQABAAQAAAACAPr/BQABAAQAAAACAPv/BQABAAQAAAACAPz/BQABAAQAAAACAP3/BQABAAQAAAACAP7/BQABAAQAAAACAP//BQABAAQAAAACAAAABQABAAQAAAACAAEABQABAAQAAAACAAIABQABAAQAAAACAAMABQABAAQAAAACAAQABQABAAQAAAACAAUABQABAAQAAAACAAYABQABAAQAAAACAAcABQABAAQAAAACAAgABQABAAQAAAACAAkABQABAAQAAAACAAoABQABAAQAAAADAPf/BQABAAQAAAADAPj/BQABAAQAAAADAPn/BQABAAQAAAADAPr/BQABAAQAAAADAPv/BQABAAQAAAADAPz/BQABAAQAAAADAP3/BQABAAQAAAADAP7/BQABAAQAAAADAP//BQABAAQAAAADAAAABQABAAQAAAADAAEABQABAAQAAAADAAIABQABAAQAAAADAAMABQABAAQAAAADAAQABQABAAQAAAADAAUABQABAAQAAAADAAYABQABAAQAAAADAAcABQABAAQAAAADAAgABQABAAQAAAADAAkABQABAAQAAAADAAoABQABAAQAAAAEAPf/BQABAAQAAAAEAPj/BQABAAQAAAAEAPn/BQABAAQAAAAEAPr/BQABAAQAAAAEAPv/BQABAAQAAAAEAPz/BQABAAQAAAAEAP3/BQABAAQAAAAEAP7/BQABAAQAAAAEAP//BQABAAQAAAAEAAAABQABAAQAAAAEAAEABQABAAQAAAAEAAIABQABAAQAAAAEAAMABQABAAQAAAAEAAQABQABAAQAAAAEAAUABQABAAQAAAAEAAYABQABAAQAAAAEAAcABQABAAQAAAAEAAgABQABAAQAAAAEAAkABQABAAQAAAAEAAoABQABAAQAAAAFAPf/BQABAAQAAAAFAPj/BQABAAQAAAAFAPn/BQABAAQAAAAFAPr/BQABAAQAAAAFAPv/BQABAAQAAAAFAPz/BQABAAQAAAAFAP3/BQABAAQAAAAFAP7/BQABAAQAAAAFAP//BQABAAQAAAAFAAAABQABAAQAAAAFAAEABQABAAQAAAAFAAIABQABAAQAAAAFAAMABQABAAQAAAAFAAQABQABAAQAAAAFAAUABQABAAQAAAAFAAYABQABAAQAAAAFAAcABQABAAQAAAAFAAgABQABAAQAAAAFAAkABQABAAQAAAAFAAoABQABAAQAAAD6//X/BQABAAQAAAD6//b/BQABAAQAAAD7//X/BQABAAQAAAD7//b/BQABAAQAAAD8//X/BQABAAQAAAD8//b/BQABAAQAAAD9//X/BQABAAQAAAD9//b/BQABAAQAAAD+//X/BQABAAQAAAD+//b/BQABAAQAAAD///X/BQABAAQAAAD///b/BQABAAQAAAAAAPX/BQABAAQAAAAAAPb/BQABAAQAAAABAPX/BQABAAQAAAABAPb/BQABAAQAAAACAPX/BQABAAQAAAACAPb/BQABAAQAAAADAPX/BQABAAQAAAADAPb/BQABAAQAAAAEAPb/BQABAAQAAAD5//P/BQABAAQAAAD5//T/BQABAAQAAAD5//X/BQABAAQAAAD5//b/BQABAAQAAAD6//P/BQABAAQAAAD6//T/BQABAAQAAAD7//P/BQABAAQAAAD7//T/BQABAAQAAAD8//P/BQABAAQAAAD8//T/BQABAAQAAAD9//P/BQABAAQAAAD9//T/BQABAAQAAAD+//P/BQABAAQAAAD+//T/BQABAAQAAAD///P/BQABAAQAAAD///T/BQABAAQAAAAAAPP/BQABAAQAAAAAAPT/BQABAAQAAAABAPP/BQABAAQAAAABAPT/BQABAAQAAAACAPP/BQABAAQAAAACAPT/BQABAAQAAAADAPP/BQABAAQAAAADAPT/BQABAAQAAAAEAPP/BQABAAQAAAAEAPT/BQABAAQAAAAEAPX/BQABAAQAAAAFAPP/BQABAAQAAAAFAPT/BQABAAQAAAAFAPLine truncated
|
||||
@@ -274,3 +317,12 @@ metadata/_edit_lock_ = true
|
||||
|
||||
[node name="CanvasModulate" type="CanvasModulate" parent="." unique_id=1681660400]
|
||||
color = Color(0.3478174, 0.34781674, 0.3478171, 1)
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=701919079]
|
||||
|
||||
[node name="RhythmManager" parent="CanvasLayer" unique_id=2036637300 node_paths=PackedStringArray("target_audio") instance=ExtResource("7_272bh")]
|
||||
unique_name_in_owner = true
|
||||
target_audio = NodePath("../../Conductor/FullAudio")
|
||||
|
||||
[node name="ClickTrack" parent="." unique_id=1931221522 instance=ExtResource("11_efxa6")]
|
||||
unique_name_in_owner = true
|
||||
@@ -47,6 +47,11 @@ start={
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
ready={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
[gd_resource type="OccluderPolygon2D" format=3 uid="uid://inxtfgsnw5sq"]
|
||||
|
||||
[resource]
|
||||
polygon = PackedVector2Array(0, 12, 4, 13, 0, 14, -4, 13)
|
||||
@@ -0,0 +1,13 @@
|
||||
[gd_resource type="GradientTexture2D" format=3 uid="uid://d1li1mlxutaym"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_lquwl"]
|
||||
interpolation_mode = 2
|
||||
offsets = PackedFloat32Array(0.5, 0.8)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[resource]
|
||||
gradient = SubResource("Gradient_lquwl")
|
||||
width = 128
|
||||
fill = 1
|
||||
fill_from = Vector2(0.5, 0.5)
|
||||
fill_to = Vector2(0.85, 0.85)
|
||||
+12
-6
@@ -4,10 +4,11 @@ class_name RhythmManager
|
||||
extends Node2D
|
||||
## Documentation comments
|
||||
|
||||
## signal
|
||||
signal song_started()
|
||||
## enum
|
||||
## const
|
||||
|
||||
@export var target_audio: AudioStreamPlayer2D
|
||||
@export var tempo: int = 120
|
||||
@export var beats_per_measure: int = 4
|
||||
|
||||
@@ -26,15 +27,17 @@ var click_track_stream: AudioStream
|
||||
#var delay_time: float
|
||||
|
||||
@onready var beat_bar: ProgressBar = %BeatBar
|
||||
@onready var click_track: AudioStreamPlayer2D = %ClickTrack
|
||||
#@onready var click_track: AudioStreamPlayer2D = %ClickTrack
|
||||
@onready var beat_time_value: Label = %BeatTimeValue
|
||||
@onready var volume_bar_left: ProgressBar = %VolumeBarLeft
|
||||
@onready var volume_bar_right: ProgressBar = %VolumeBarRight
|
||||
@onready var volume_value_left: Label = %VolumeValueLeft
|
||||
@onready var volume_value_right: Label = %VolumeValueRight
|
||||
|
||||
## OVERRIDES
|
||||
|
||||
func _ready() -> void:
|
||||
click_track_stream = click_track.stream
|
||||
#click_track_stream = click_track.stream
|
||||
ready_time = Time.get_ticks_usec()
|
||||
print("Ready time: %s" % ready_time)
|
||||
print("Buses at index 0: %s" % AudioServer.get_bus_name(0))
|
||||
@@ -52,6 +55,8 @@ func _process(_delta: float) -> void:
|
||||
if is_running:
|
||||
volume_bar_left.value = AudioServer.get_bus_peak_volume_left_db(0, 0)
|
||||
volume_bar_right.value = AudioServer.get_bus_peak_volume_right_db(0, 0)
|
||||
volume_value_left.text = str(snappedf(AudioServer.get_bus_peak_volume_left_db(0, 0), 0.1))
|
||||
volume_value_right.text = str(snappedf(AudioServer.get_bus_peak_volume_right_db(0, 0), 0.1))
|
||||
song_time_elapsed = total_time_elapsed - start_time
|
||||
#print("song time elapsed: %s" % song_time_elapsed)
|
||||
beat_time_elapsed = song_time_elapsed - beat_time_start
|
||||
@@ -67,17 +72,18 @@ func _process(_delta: float) -> void:
|
||||
beat_time_start = song_time_elapsed
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("ui_accept"):
|
||||
if event.is_action_pressed("start"):
|
||||
if is_running == false:
|
||||
start_time = Time.get_ticks_usec()
|
||||
print("start time: %s" % start_time)
|
||||
is_running = true
|
||||
click_track.play()
|
||||
target_audio.play()
|
||||
else:
|
||||
click_track.stop()
|
||||
target_audio.stop()
|
||||
is_running = false
|
||||
end_time = Time.get_ticks_usec()
|
||||
print("end_time: %s" % end_time)
|
||||
song_started.emit()
|
||||
|
||||
#func _physics_process(delta: float) -> void:
|
||||
#pass
|
||||
|
||||
+20
-10
@@ -1,10 +1,11 @@
|
||||
[gd_scene format=3 uid="uid://ojisu2jrshsp"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bhbfogebu1di5" path="res://rhythm_manager.gd" id="1_0wx20"]
|
||||
[ext_resource type="AudioStream" uid="uid://b8n6p428csquv" path="res://assets/audio/full/eine-kleine-click.wav" id="2_6v8l0"]
|
||||
[ext_resource type="PackedScene" uid="uid://dduyumwk5v1ge" path="res://click_track.tscn" id="2_6v8l0"]
|
||||
|
||||
[node name="RhythmManager" type="Node2D" unique_id=2036637300]
|
||||
[node name="RhythmManager" type="Node2D" unique_id=2036637300 node_paths=PackedStringArray("target_audio")]
|
||||
script = ExtResource("1_0wx20")
|
||||
target_audio = NodePath("")
|
||||
|
||||
[node name="RhythmUI" type="Control" parent="." unique_id=510351076]
|
||||
layout_mode = 3
|
||||
@@ -47,7 +48,7 @@ text = "00000"
|
||||
[node name="VolumeContainer" type="HBoxContainer" parent="RhythmUI/VBoxContainer" unique_id=845038304]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VolumeLabel" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainer" unique_id=1552250086]
|
||||
[node name="VolumeLabelLeft" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainer" unique_id=1552250086]
|
||||
layout_mode = 2
|
||||
text = "Volume L: "
|
||||
|
||||
@@ -56,15 +57,20 @@ unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = -200.0
|
||||
min_value = -100.0
|
||||
max_value = 0.0
|
||||
fill_mode = 1
|
||||
step = 0.1
|
||||
show_percentage = false
|
||||
|
||||
[node name="VolumeValueLeft" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainer" unique_id=1495628968]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "-00.0"
|
||||
|
||||
[node name="VolumeContainerRight" type="HBoxContainer" parent="RhythmUI/VBoxContainer" unique_id=1505527639]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VolumeLabel" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainerRight" unique_id=96518109]
|
||||
[node name="VolumeLabelRight" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainerRight" unique_id=96518109]
|
||||
layout_mode = 2
|
||||
text = "Volume R: "
|
||||
|
||||
@@ -73,11 +79,15 @@ unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = -200.0
|
||||
min_value = -100.0
|
||||
max_value = 0.0
|
||||
fill_mode = 1
|
||||
step = 0.1
|
||||
show_percentage = false
|
||||
|
||||
[node name="ClickTrack" type="AudioStreamPlayer2D" parent="." unique_id=875092300]
|
||||
[node name="VolumeValueRight" type="Label" parent="RhythmUI/VBoxContainer/VolumeContainerRight" unique_id=1882589387]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "-00.0"
|
||||
|
||||
[node name="ClickTrack" parent="." unique_id=1931221522 instance=ExtResource("2_6v8l0")]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("2_6v8l0")
|
||||
Reference in new issue
Block a user