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
40 lines
975 B
C#
40 lines
975 B
C#
using Godot;
|
|
using Onrinto.Chart;
|
|
|
|
public partial class NoteObject : Node3D
|
|
{
|
|
private double _hitSeconds;
|
|
private bool _isHit = false;
|
|
private bool _initialized = false;
|
|
|
|
public void Initialize(ChartEvent chartEvent, double hitSeconds, float initialZ)
|
|
{
|
|
_hitSeconds = hitSeconds;
|
|
Position = new Vector3(chartEvent.Position.X, chartEvent.Position.Y, initialZ);
|
|
|
|
_initialized = true;
|
|
}
|
|
|
|
// Called when the node enters the scene tree for the first time.
|
|
public override void _Ready()
|
|
{
|
|
|
|
}
|
|
|
|
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
public override void _Process(double delta)
|
|
{
|
|
if (!_initialized) return;
|
|
|
|
float speed = 20.0f; // Scroll speed
|
|
|
|
double _currentTime = MusicClock.Instance.CurrentTime;
|
|
|
|
float newZ = (float)((_hitSeconds - _currentTime) * speed);
|
|
Position = new Vector3(Position.X, Position.Y, newZ); // Update Z position
|
|
|
|
if(_hitSeconds - _currentTime < -0.5) QueueFree(); // Remove note
|
|
|
|
}
|
|
}
|