From c8bd5c16c8165ef79976c2e378ad951e59126f5f Mon Sep 17 00:00:00 2001 From: muskit <15199219+muskit@users.noreply.github.com> Date: Sat, 16 Sep 2023 00:40:36 -0700 Subject: [PATCH] fix chart reading, scroll chart notes! --- Scenes/Play.tscn | 41 ++++++++++----- Scripts/Data/Chart/Chart.cs | 4 -- Scripts/Scenes/Play.cs | 48 +++++++++++++++++- Scripts/Things/TunnelObjects/THNoteHold.cs | 16 ++++++ Scripts/Things/TunnelObjects/THNotePlay.cs | 28 ++++++++++ Things/TunnelObjects/Notes/NoteTouch.tscn | 18 +++---- _Assets/Textures/Notes/Hold.png | Bin 8959 -> 7370 bytes .../Textures/Notes/{Touch.xcf => Notes.xcf} | Bin 49598 -> 49598 bytes _Assets/Textures/Notes/Touch.png | Bin 10827 -> 8959 bytes 9 files changed, 126 insertions(+), 29 deletions(-) create mode 100644 Scripts/Things/TunnelObjects/THNoteHold.cs create mode 100644 Scripts/Things/TunnelObjects/THNotePlay.cs rename _Assets/Textures/Notes/{Touch.xcf => Notes.xcf} (99%) diff --git a/Scenes/Play.tscn b/Scenes/Play.tscn index 92911a6..dc917f8 100644 --- a/Scenes/Play.tscn +++ b/Scenes/Play.tscn @@ -66,8 +66,9 @@ width = 2048 [sub_resource type="LabelSettings" id="LabelSettings_dj3ei"] font_size = 271 -[node name="Play" type="Node"] +[node name="Play" type="Node" node_paths=PackedStringArray("noteDisplay")] script = ExtResource("1_d6iv3") +noteDisplay = NodePath("SubViewportContainer/2D Viewport/Viewport Control/Notes") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_nefjb") @@ -113,7 +114,7 @@ msaa_2d = 1 size = Vector2i(1920, 1920) render_target_update_mode = 4 -[node name="Node2D" type="Control" parent="SubViewportContainer/2D Viewport"] +[node name="Viewport Control" type="Control" parent="SubViewportContainer/2D Viewport"] clip_contents = true layout_mode = 3 anchors_preset = 15 @@ -122,12 +123,12 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -[node name="Camera2D" type="Camera2D" parent="SubViewportContainer/2D Viewport/Node2D"] +[node name="Camera2D" type="Camera2D" parent="SubViewportContainer/2D Viewport/Viewport Control"] position = Vector2(0, -1920) anchor_mode = 0 enabled = false -[node name="Shadow" type="TextureRect" parent="SubViewportContainer/2D Viewport/Node2D"] +[node name="Shadow" type="TextureRect" parent="SubViewportContainer/2D Viewport/Viewport Control"] layout_mode = 2 offset_top = 1920.0 offset_right = 100.0 @@ -136,9 +137,9 @@ rotation = -1.5708 texture = SubResource("GradientTexture1D_vv2ac") expand_mode = 1 -[node name="HitLine_Reverse" type="Node2D" parent="SubViewportContainer/2D Viewport/Node2D"] +[node name="HitLine_Reverse" type="Node2D" parent="SubViewportContainer/2D Viewport/Viewport Control"] -[node name="Line" type="TextureRect" parent="SubViewportContainer/2D Viewport/Node2D/HitLine_Reverse"] +[node name="Line" type="TextureRect" parent="SubViewportContainer/2D Viewport/Viewport Control/HitLine_Reverse"] anchors_preset = 7 anchor_left = 0.5 anchor_top = 1.0 @@ -152,7 +153,7 @@ grow_vertical = 0 texture = ExtResource("2_kpt0a") expand_mode = 1 -[node name="Line2" type="TextureRect" parent="SubViewportContainer/2D Viewport/Node2D/HitLine_Reverse"] +[node name="Line2" type="TextureRect" parent="SubViewportContainer/2D Viewport/Viewport Control/HitLine_Reverse"] anchors_preset = 7 anchor_left = 0.5 anchor_top = 1.0 @@ -167,7 +168,7 @@ grow_vertical = 0 texture = ExtResource("2_kpt0a") expand_mode = 1 -[node name="Label" type="Label" parent="SubViewportContainer/2D Viewport/Node2D"] +[node name="Label" type="Label" parent="SubViewportContainer/2D Viewport/Viewport Control"] visible = false layout_mode = 1 anchors_preset = 2 @@ -188,10 +189,22 @@ label_settings = SubResource("LabelSettings_dj3ei") horizontal_alignment = 1 vertical_alignment = 2 -[node name="Notes" type="Node2D" parent="SubViewportContainer/2D Viewport/Node2D"] +[node name="Notes" type="Control" parent="SubViewportContainer/2D Viewport/Viewport Control"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +grow_vertical = 0 -[node name="NoteTouch" parent="SubViewportContainer/2D Viewport/Node2D/Notes" instance=ExtResource("3_qp71m")] -offset_left = 1500.0 -offset_top = 1800.0 -offset_right = 1690.0 -offset_bottom = 1824.0 +[node name="NoteTouch" parent="SubViewportContainer/2D Viewport/Viewport Control/Notes" instance=ExtResource("3_qp71m")] +visible = false +layout_mode = 1 +offset_left = 400.0 +offset_top = -120.0 +offset_right = 1100.0 +offset_bottom = -96.0 + +[node name="HoldTest" type="Polygon2D" parent="SubViewportContainer/2D Viewport/Viewport Control/Notes"] +visible = false +color = Color(1, 0.917647, 0.2, 0.890196) +polygon = PackedVector2Array(0, 0, 300, 0, 1100, -1920, 800, -1920) diff --git a/Scripts/Data/Chart/Chart.cs b/Scripts/Data/Chart/Chart.cs index 93c9436..33ca94b 100644 --- a/Scripts/Data/Chart/Chart.cs +++ b/Scripts/Data/Chart/Chart.cs @@ -13,7 +13,6 @@ namespace WacK.Data.Chart /// public class Chart { - public static bool doneLoading { get; private set; } = false; // Key of dictionaries are in milliseconds // List is for chords public SortedList> playNotes { get; private set; } @@ -23,7 +22,6 @@ namespace WacK.Data.Chart public Chart(string chartPath) { - doneLoading = false; var file = FileAccess.Open(chartPath, FileAccess.ModeFlags.Read); if (file == null) { @@ -35,8 +33,6 @@ namespace WacK.Data.Chart var mer = new Mer.Mer(str); Load(mer); - - doneLoading = true; } // place notes and events relative to the previous diff --git a/Scripts/Scenes/Play.cs b/Scripts/Scenes/Play.cs index b563838..0825e9a 100644 --- a/Scripts/Scenes/Play.cs +++ b/Scripts/Scenes/Play.cs @@ -1,6 +1,8 @@ +using System.Reflection.PortableExecutable; using Godot; using WacK.Data.Chart; using WacK.Data.Mer; +using WacK.Things.TunnelObjects; namespace WacK.Scenes { @@ -24,13 +26,55 @@ namespace WacK.Scenes // initialized by another scene, BEFORE loading this one! public static PlayParameters playParams; + // TunnelObjects we can instantiate + public static PackedScene notePlay = GD.Load("res://Things/TunnelObjects/Notes/NoteTouch.tscn"); + + [Export] + public Control noteDisplay; + private Chart chart; public override void _Ready() { + // parse mer and create chart for current play chart = new(playParams.chartPath); - } - private void OnDestroy() + RealizeChart(); + } + + /// + /// Instantiates necessary notes onto the noteDisplay for the player to see. + /// + private void RealizeChart() + { + foreach (var msNote in chart.playNotes) + { + GD.Print(msNote.Key); + foreach (var note in msNote.Value) + { + THNotePlay nNote; + switch (note) + { + default: // tap note + nNote = notePlay.Instantiate(); + break; + } + nNote.Init(note); + var nPos = nNote.Position; + nPos.Y = msNote.Key * -1000; + nNote.Position = nPos; + noteDisplay.AddChild(nNote); + } + } + } + + public override void _Process(double delta) + { + var nPos = noteDisplay.Position; + nPos.Y += (float)delta * 1000; + noteDisplay.Position = nPos; + } + + private void OnDestroy() { playParams = null; } diff --git a/Scripts/Things/TunnelObjects/THNoteHold.cs b/Scripts/Things/TunnelObjects/THNoteHold.cs new file mode 100644 index 0000000..995adba --- /dev/null +++ b/Scripts/Things/TunnelObjects/THNoteHold.cs @@ -0,0 +1,16 @@ +using Godot; +using WacK.Data.Chart; + +namespace WacK.Things.TunnelObjects +{ + public partial class THNoteHold : THNotePlay + { + public new NoteHold noteData; + + public void Init(NoteHold noteData) + { + base.Init(noteData); + this.noteData = noteData; + } + } +} \ No newline at end of file diff --git a/Scripts/Things/TunnelObjects/THNotePlay.cs b/Scripts/Things/TunnelObjects/THNotePlay.cs new file mode 100644 index 0000000..f9713ca --- /dev/null +++ b/Scripts/Things/TunnelObjects/THNotePlay.cs @@ -0,0 +1,28 @@ +using Godot; +using WacK.Data.Chart; + +namespace WacK.Things.TunnelObjects +{ + public partial class THNotePlay : Control + { + public NotePlay noteData; + + public void Init(NotePlay noteData) + { + this.noteData = noteData; + SetSizePos((int)noteData.position, (int)noteData.size); + } + + public void SetSizePos(int pos, int size) + { + // TODO: pos + size >= 60 + var nPos = Position; + nPos.X = pos * (1920f/60) - 12; + Position = nPos; + + var nSize = Size; + nSize.X = size * (1920f/60) + 24; + Size = nSize; + } + } +} \ No newline at end of file diff --git a/Things/TunnelObjects/Notes/NoteTouch.tscn b/Things/TunnelObjects/Notes/NoteTouch.tscn index cb8bef5..10ed9d2 100644 --- a/Things/TunnelObjects/Notes/NoteTouch.tscn +++ b/Things/TunnelObjects/Notes/NoteTouch.tscn @@ -1,22 +1,22 @@ -[gd_scene load_steps=2 format=3 uid="uid://cyopljug0duaa"] +[gd_scene load_steps=3 format=3 uid="uid://cyopljug0duaa"] [ext_resource type="Texture2D" uid="uid://cnsbqiharp0jh" path="res://_Assets/Textures/Notes/Touch.png" id="1_hnm2k"] +[ext_resource type="Script" path="res://Scripts/Things/TunnelObjects/THNotePlay.cs" id="1_p334j"] [node name="NoteTouch" type="Control"] layout_mode = 3 -anchors_preset = 2 -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_top = -1920.0 -offset_right = 1920.0 -offset_bottom = -1884.0 -grow_vertical = 0 +anchors_preset = 0 +offset_right = 200.0 +offset_bottom = 24.0 +script = ExtResource("1_p334j") [node name="NinePatchRect" type="NinePatchRect" parent="."] layout_mode = 1 -anchors_preset = 15 +anchors_preset = -1 anchor_right = 1.0 anchor_bottom = 1.0 +offset_top = -36.0 +offset_bottom = -24.0 grow_horizontal = 2 grow_vertical = 2 texture = ExtResource("1_hnm2k") diff --git a/_Assets/Textures/Notes/Hold.png b/_Assets/Textures/Notes/Hold.png index c8edfbf7519d7835ba2f99f0a14e254715b97062..83e5f890c4614d9ea09ab34d71e41bd08c6ffe00 100644 GIT binary patch delta 6947 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 e%P)@L!2bf4vW6Yz{D|}b0000Mj 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 delta 10446 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 Ef&mG;r2qf`