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:
26
Scripts/Core/MusicClock.cs
Normal file
26
Scripts/Core/MusicClock.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Godot;
|
||||
|
||||
public partial class MusicClock : AudioStreamPlayer
|
||||
{
|
||||
public static MusicClock Instance {get; private set; }
|
||||
|
||||
private double currentTime;
|
||||
public double CurrentTime { get; private set; }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Instance = this;
|
||||
if (Stream == null) GD.PrintErr("MusicClock: No Audio File?");
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if(!Playing) return;
|
||||
|
||||
double rawTime = GetPlaybackPosition();
|
||||
double delay = AudioServer.GetTimeSinceLastMix();
|
||||
double latency = AudioServer.GetOutputLatency();
|
||||
|
||||
CurrentTime = rawTime + delay - latency;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user