new file: .editorconfig

new file:   .gitattributes
	new file:   Charts/track.json
	new file:   ProjectOnrinto.csproj
	new file:   ProjectOnrinto.sln
	new file:   Scenes/Audio/audio_stream_player.tscn
	new file:   Scenes/Game/level.tscn
	new file:   Scenes/Prefabs/beat.tscn
	new file:   Scripts/Core/GameManager.cs
	new file:   Scripts/Core/GameManager.cs.uid
	new file:   Scripts/Core/MusicClock.cs
	new file:   Scripts/Core/MusicClock.cs.uid
	new file:   Scripts/Core/TrackGenerator.cs
	new file:   Scripts/Core/TrackGenerator.cs.uid
	new file:   Scripts/Data/ChartEvent.cs
	new file:   Scripts/Data/ChartEvent.cs.uid
	new file:   Scripts/Data/JsonConverter.cs
	new file:   Scripts/Data/JsonConverter.cs.uid
	new file:   Scripts/Data/TrackData.cs
	new file:   Scripts/Data/TrackData.cs.uid
	new file:   Scripts/GameObjects/NoteObject.cs
	new file:   Scripts/GameObjects/NoteObject.cs.uid
	new file:   icon.svg
	new file:   icon.svg.import
	new file:   project.godot
This commit is contained in:
2026-04-05 00:07:28 +08:00
commit 0e6bf1dcad
25 changed files with 634 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
using Godot;
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
//unread...
namespace Onrinto.Chart;
public class Vector2Converter : JsonConverter<Vector2>
{
public override Vector2 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
// 预设默认值
float x = 0;
float y = 0;
if (reader.TokenType != JsonTokenType.StartObject)
throw new JsonException("预期一个对象来解析 Vector2");
while (reader.Read())
{
if (reader.TokenType == JsonTokenType.EndObject)
return new Vector2(x, y);
if (reader.TokenType == JsonTokenType.PropertyName)
{
string propertyName = reader.GetString()?.ToLower(); // 统一转小写处理
reader.Read();
if (propertyName == "x") x = (float)reader.GetDouble();
else if (propertyName == "y") y = (float)reader.GetDouble();
}
}
return new Vector2(x, y);
}
public override void Write(Utf8JsonWriter writer, Vector2 value, JsonSerializerOptions options)
{
writer.WriteStartObject();
writer.WriteNumber("x", value.X);
writer.WriteNumber("y", value.Y);
writer.WriteEndObject();
}
}