mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2025-03-22 18:09:33 +00:00
crochet->lengthMs
This commit is contained in:
parent
8685054696
commit
1ef17770e9
|
@ -72,15 +72,15 @@ class Conductor
|
||||||
|
|
||||||
static function get_measureLengthMs():Float
|
static function get_measureLengthMs():Float
|
||||||
{
|
{
|
||||||
return crochet * timeSignatureNumerator;
|
return beatLengthMs * timeSignatureNumerator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Duration of a beat in milliseconds. Calculated based on bpm.
|
* Duration of a beat in milliseconds. Calculated based on bpm.
|
||||||
*/
|
*/
|
||||||
public static var crochet(get, null):Float;
|
public static var beatLengthMs(get, null):Float;
|
||||||
|
|
||||||
static function get_crochet():Float
|
static function get_beatLengthMs():Float
|
||||||
{
|
{
|
||||||
return ((Constants.SECS_PER_MIN / bpm) * Constants.MS_PER_SEC);
|
return ((Constants.SECS_PER_MIN / bpm) * Constants.MS_PER_SEC);
|
||||||
}
|
}
|
||||||
|
@ -88,11 +88,11 @@ class Conductor
|
||||||
/**
|
/**
|
||||||
* Duration of a step (quarter) in milliseconds. Calculated based on bpm.
|
* Duration of a step (quarter) in milliseconds. Calculated based on bpm.
|
||||||
*/
|
*/
|
||||||
public static var stepCrochet(get, null):Float;
|
public static var stepLengthMs(get, null):Float;
|
||||||
|
|
||||||
static function get_stepCrochet():Float
|
static function get_stepLengthMs():Float
|
||||||
{
|
{
|
||||||
return crochet / timeSignatureNumerator;
|
return beatLengthMs / timeSignatureNumerator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static var timeSignatureNumerator(get, null):Int;
|
public static var timeSignatureNumerator(get, null):Int;
|
||||||
|
@ -113,9 +113,21 @@ class Conductor
|
||||||
return currentTimeChange.timeSignatureDen;
|
return currentTimeChange.timeSignatureDen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static var beatsPerMeasure(get, null):Float;
|
||||||
|
|
||||||
|
static function get_beatsPerMeasure():Float
|
||||||
|
{
|
||||||
|
return timeSignatureNumerator / timeSignatureDenominator * 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current position in the song, in measures.
|
||||||
|
*/
|
||||||
|
public static var currentMeasure(default, null):Int;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current position in the song, in beats.
|
* Current position in the song, in beats.
|
||||||
**/
|
*/
|
||||||
public static var currentBeat(default, null):Int;
|
public static var currentBeat(default, null):Int;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,6 +135,16 @@ class Conductor
|
||||||
*/
|
*/
|
||||||
public static var currentStep(default, null):Int;
|
public static var currentStep(default, null):Int;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current position in the song, in measures and fractions of a measure.
|
||||||
|
*/
|
||||||
|
public static var currentMeasureTime(default, null):Float;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current position in the song, in beats and fractions of a measure.
|
||||||
|
*/
|
||||||
|
public static var currentBeatTime(default, null):Float;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current position in the song, in steps and fractions of a step.
|
* Current position in the song, in steps and fractions of a step.
|
||||||
*/
|
*/
|
||||||
|
@ -136,12 +158,11 @@ class Conductor
|
||||||
public static var audioOffset:Float = 0;
|
public static var audioOffset:Float = 0;
|
||||||
public static var offset:Float = 0;
|
public static var offset:Float = 0;
|
||||||
|
|
||||||
// TODO: Add code to update this.
|
|
||||||
public static var beatsPerMeasure(get, null):Int;
|
public static var beatsPerMeasure(get, null):Int;
|
||||||
|
|
||||||
static function get_beatsPerMeasure():Int
|
static function get_beatsPerMeasure():Int
|
||||||
{
|
{
|
||||||
return timeSignatureNumerator;
|
return stepsPerMeasure / Constants.STEPS_PER_BEAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static var stepsPerMeasure(get, null):Int;
|
public static var stepsPerMeasure(get, null):Int;
|
||||||
|
@ -149,7 +170,7 @@ class Conductor
|
||||||
static function get_stepsPerMeasure():Int
|
static function get_stepsPerMeasure():Int
|
||||||
{
|
{
|
||||||
// Is this always x4?
|
// Is this always x4?
|
||||||
return timeSignatureNumerator * Constants.STEPS_PER_BEAT;
|
return timeSignatureNumerator / timeSignatureDenominator * Constants.STEPS_PER_BEAT * Constants.STEPS_PER_BEAT;
|
||||||
}
|
}
|
||||||
|
|
||||||
function new() {}
|
function new() {}
|
||||||
|
@ -202,16 +223,22 @@ class Conductor
|
||||||
else if (currentTimeChange != null)
|
else if (currentTimeChange != null)
|
||||||
{
|
{
|
||||||
// roundDecimal prevents representing 8 as 7.9999999
|
// roundDecimal prevents representing 8 as 7.9999999
|
||||||
currentStepTime = FlxMath.roundDecimal((currentTimeChange.beatTime * 4) + (songPosition - currentTimeChange.timeStamp) / stepCrochet, 6);
|
currentStepTime = FlxMath.roundDecimal((currentTimeChange.beatTime * 4) + (songPosition - currentTimeChange.timeStamp) / stepLengthMs, 6);
|
||||||
|
currentBeatTime = currentStepTime / Constants.STEPS_PER_BEAT;
|
||||||
|
currentMeasureTime = currentStepTime / stepsPerMeasure;
|
||||||
currentStep = Math.floor(currentStepTime);
|
currentStep = Math.floor(currentStepTime);
|
||||||
currentBeat = Math.floor(currentStep / 4);
|
currentBeat = Math.floor(currentBeatTime);
|
||||||
|
currentMeasure = Math.floor(currentMeasureTime);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Assume a constant BPM equal to the forced value.
|
// Assume a constant BPM equal to the forced value.
|
||||||
currentStepTime = (songPosition / stepCrochet);
|
currentStepTime = FlxMath.roundDecimal((songPosition / stepLengthMs), 4);
|
||||||
|
currentBeatTime = currentStepTime / Constants.STEPS_PER_BEAT;
|
||||||
|
currentMeasureTime = currentStepTime / stepsPerMeasure;
|
||||||
currentStep = Math.floor(currentStepTime);
|
currentStep = Math.floor(currentStepTime);
|
||||||
currentBeat = Math.floor(currentStep / 4);
|
currentBeat = Math.floor(currentBeatTime);
|
||||||
|
currentMeasure = Math.floor(currentMeasureTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FlxSignals are really cool.
|
// FlxSignals are really cool.
|
||||||
|
@ -274,7 +301,7 @@ class Conductor
|
||||||
if (timeChanges.length == 0)
|
if (timeChanges.length == 0)
|
||||||
{
|
{
|
||||||
// Assume a constant BPM equal to the forced value.
|
// Assume a constant BPM equal to the forced value.
|
||||||
return Math.floor(ms / stepCrochet);
|
return Math.floor(ms / stepLengthMs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -295,7 +322,7 @@ class Conductor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resultStep += Math.floor((ms - lastTimeChange.timeStamp) / stepCrochet);
|
resultStep += Math.floor((ms - lastTimeChange.timeStamp) / stepLengthMs);
|
||||||
|
|
||||||
return resultStep;
|
return resultStep;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1877,7 +1877,7 @@ class ChartEditorState extends HaxeUIState
|
||||||
{
|
{
|
||||||
// Handle extending the note as you drag.
|
// Handle extending the note as you drag.
|
||||||
|
|
||||||
// Since use Math.floor and stepCrochet here, the hold notes will be beat snapped.
|
// Since use Math.floor and stepLengthMs here, the hold notes will be beat snapped.
|
||||||
var dragLengthSteps:Float = Math.floor((cursorMs - currentPlaceNoteData.time) / Conductor.stepLengthMs);
|
var dragLengthSteps:Float = Math.floor((cursorMs - currentPlaceNoteData.time) / Conductor.stepLengthMs);
|
||||||
|
|
||||||
// Without this, the newly placed note feels too short compared to the user's input.
|
// Without this, the newly placed note feels too short compared to the user's input.
|
||||||
|
|
|
@ -15,6 +15,7 @@ import funkin.modding.events.ScriptEventDispatcher;
|
||||||
import funkin.play.PlayState;
|
import funkin.play.PlayState;
|
||||||
import funkin.play.PlayStatePlaylist;
|
import funkin.play.PlayStatePlaylist;
|
||||||
import funkin.play.song.Song;
|
import funkin.play.song.Song;
|
||||||
|
import funkin.play.song.SongData.SongMetadata;
|
||||||
import funkin.play.song.SongData.SongDataParser;
|
import funkin.play.song.SongData.SongDataParser;
|
||||||
import funkin.util.Constants;
|
import funkin.util.Constants;
|
||||||
|
|
||||||
|
@ -200,7 +201,7 @@ class StoryMenuState extends MusicBeatState
|
||||||
{
|
{
|
||||||
if (FlxG.sound.music == null || !FlxG.sound.music.playing)
|
if (FlxG.sound.music == null || !FlxG.sound.music.playing)
|
||||||
{
|
{
|
||||||
var freakyMenuMetadata:SongMetadata = SongData.parseMusicMetadata('freakyMenu');
|
var freakyMenuMetadata:SongMetadata = SongDataParser.parseMusicMetadata('freakyMenu');
|
||||||
Conductor.mapTimeChanges(freakyMenuMetadata.timeChanges);
|
Conductor.mapTimeChanges(freakyMenuMetadata.timeChanges);
|
||||||
|
|
||||||
FlxG.sound.playMusic(Paths.music('freakyMenu/freakyMenu'), 0);
|
FlxG.sound.playMusic(Paths.music('freakyMenu/freakyMenu'), 0);
|
||||||
|
|
Loading…
Reference in a new issue