Merge branch 'master' into deferred_loading

This commit is contained in:
George FunBook
2021-02-12 09:46:22 -06:00
10 changed files with 188 additions and 192 deletions

View File

@ -1,5 +1,6 @@
package;
import Conductor.BPMChangeEvent;
import flixel.FlxG;
import flixel.addons.transition.FlxTransitionableState;
import flixel.addons.ui.FlxUIState;
@ -11,9 +12,6 @@ class MusicBeatState extends FlxUIState
private var lastBeat:Float = 0;
private var lastStep:Float = 0;
private var totalBeats:Int = 0;
private var totalSteps:Int = 0;
private var curStep:Int = 0;
private var curBeat:Int = 0;
private var controls(get, never):Controls;
@ -31,59 +29,47 @@ class MusicBeatState extends FlxUIState
override function update(elapsed:Float)
{
everyStep();
//everyStep();
var oldStep:Int = curStep;
updateCurStep();
// Needs to be ROUNED, rather than ceil or floor
updateBeat();
if (oldStep != curStep && curStep > 0)
stepHit();
super.update(elapsed);
}
private function updateBeat():Void
{
curBeat = Math.round(curStep / 4);
}
/**
* CHECKS EVERY FRAME
*/
private function everyStep():Void
{
if (Conductor.songPosition > lastStep + Conductor.stepCrochet - Conductor.safeZoneOffset
|| Conductor.songPosition < lastStep + Conductor.safeZoneOffset)
{
if (Conductor.songPosition > lastStep + Conductor.stepCrochet)
{
stepHit();
}
}
curBeat = Math.floor(curStep / 4);
}
private function updateCurStep():Void
{
curStep = Math.floor(Conductor.songPosition / Conductor.stepCrochet);
var lastChange:BPMChangeEvent = {
stepTime: 0,
songTime: 0,
bpm: 0
}
for (i in 0...Conductor.bpmChangeMap.length)
{
if (Conductor.songPosition >= Conductor.bpmChangeMap[i].songTime)
lastChange = Conductor.bpmChangeMap[i];
}
curStep = lastChange.stepTime + Math.floor((Conductor.songPosition - lastChange.songTime) / Conductor.stepCrochet);
}
public function stepHit():Void
{
totalSteps += 1;
lastStep += Conductor.stepCrochet;
// If the song is at least 3 steps behind
if (Conductor.songPosition > lastStep + (Conductor.stepCrochet * 3))
{
lastStep = Conductor.songPosition;
totalSteps = Math.ceil(lastStep / Conductor.stepCrochet);
}
if (totalSteps % 4 == 0)
if (curStep % 4 == 0)
beatHit();
}
public function beatHit():Void
{
lastBeat += Conductor.crochet;
totalBeats += 1;
//do literally nothing dumbass
}
}