1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-08-20 15:35:13 +00:00

Merge branches 'master' and 'master' of https://github.com/ninjamuffin99/funkin-secret

This commit is contained in:
Cameron Taylor 2021-05-22 12:54:33 -04:00
commit 20f627b98e
6 changed files with 116 additions and 12 deletions

View file

@ -57,10 +57,10 @@ class CoolUtil
}
/*
* just lerp that does camLerpShit for u so u dont have to do it every time
* frame dependant lerp kinda lol
*/
public static function coolLerp(a:Float, b:Float, ratio:Float):Float
public static function coolLerp(base:Float, target:Float, ratio:Float):Float
{
return FlxMath.lerp(a, b, camLerpShit(ratio));
return base + camLerpShit(ratio) * (target - base);
}
}

View file

@ -71,7 +71,7 @@ class GameOverSubstate extends MusicBeatSubstate
override function update(elapsed:Float)
{
// makes the lerp non-dependant on the framerate
FlxG.camera.followLerp = CoolUtil.camLerpShit(0.01);
// FlxG.camera.followLerp = CoolUtil.camLerpShit(0.01);
super.update(elapsed);
@ -99,7 +99,7 @@ class GameOverSubstate extends MusicBeatSubstate
if (bf.animation.curAnim.name == 'firstDeath' && bf.animation.curAnim.curFrame == 12)
{
FlxG.camera.follow(camFollow, LOCKON, CoolUtil.camLerpShit(0.01));
FlxG.camera.follow(camFollow, LOCKON, 0.01);
}
switch (PlayState.storyWeek)

View file

@ -120,6 +120,7 @@ class MainMenuState extends MusicBeatState
menuItem.y = top + spacing * i;
}
FlxG.cameras.reset(new SwagCamera());
FlxG.camera.follow(camFollow, null, 0.06);
// FlxG.camera.setScrollBounds(bg.x, bg.x + bg.width, bg.y, bg.y + bg.height * 1.2);
@ -249,7 +250,7 @@ class MainMenuState extends MusicBeatState
override function update(elapsed:Float)
{
FlxG.camera.followLerp = CoolUtil.camLerpShit(0.06);
// FlxG.camera.followLerp = CoolUtil.camLerpShit(0.06);
if (FlxG.sound.music.volume < 0.8)
{

View file

@ -169,7 +169,7 @@ class PlayState extends MusicBeatState
FlxG.sound.cache(Paths.voices(PlayState.SONG.song));
// var gameCam:FlxCamera = FlxG.camera;
camGame = new FlxCamera();
camGame = new SwagCamera();
camHUD = new FlxCamera();
camHUD.bgColor.alpha = 0;
@ -1860,7 +1860,7 @@ class PlayState extends MusicBeatState
override public function update(elapsed:Float)
{
// makes the lerp non-dependant on the framerate
FlxG.camera.followLerp = CoolUtil.camLerpShit(0.04);
// FlxG.camera.followLerp = CoolUtil.camLerpShit(0.04);
#if !debug
perfectMode = false;
@ -1964,8 +1964,8 @@ class PlayState extends MusicBeatState
// FlxG.watch.addQuick('VOL', vocals.amplitudeLeft);
// FlxG.watch.addQuick('VOLRight', vocals.amplitudeRight);
iconP1.setGraphicSize(Std.int(FlxMath.lerp(150, iconP1.width, 0.85)));
iconP2.setGraphicSize(Std.int(FlxMath.lerp(150, iconP2.width, 0.85)));
iconP1.setGraphicSize(Std.int(CoolUtil.coolLerp(iconP1.width, 150, 0.15)));
iconP2.setGraphicSize(Std.int(CoolUtil.coolLerp(iconP2.width, 150, 0.15)));
iconP1.updateHitbox();
iconP2.updateHitbox();

103
source/SwagCamera.hx Normal file
View file

@ -0,0 +1,103 @@
package;
import flixel.FlxCamera;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.math.FlxPoint;
class SwagCamera extends FlxCamera
{
/**
* properly follow framerate
* most of this just copied from FlxCamera,
* only lines 96 and 97 are changed
*/
override public function updateFollow():Void
{
// Either follow the object closely,
// or double check our deadzone and update accordingly.
if (deadzone == null)
{
target.getMidpoint(_point);
_point.addPoint(targetOffset);
focusOn(_point);
}
else
{
var edge:Float;
var targetX:Float = target.x + targetOffset.x;
var targetY:Float = target.y + targetOffset.y;
if (style == SCREEN_BY_SCREEN)
{
if (targetX >= (scroll.x + width))
{
_scrollTarget.x += width;
}
else if (targetX < scroll.x)
{
_scrollTarget.x -= width;
}
if (targetY >= (scroll.y + height))
{
_scrollTarget.y += height;
}
else if (targetY < scroll.y)
{
_scrollTarget.y -= height;
}
}
else
{
edge = targetX - deadzone.x;
if (_scrollTarget.x > edge)
{
_scrollTarget.x = edge;
}
edge = targetX + target.width - deadzone.x - deadzone.width;
if (_scrollTarget.x < edge)
{
_scrollTarget.x = edge;
}
edge = targetY - deadzone.y;
if (_scrollTarget.y > edge)
{
_scrollTarget.y = edge;
}
edge = targetY + target.height - deadzone.y - deadzone.height;
if (_scrollTarget.y < edge)
{
_scrollTarget.y = edge;
}
}
if ((target is FlxSprite))
{
if (_lastTargetPosition == null)
{
_lastTargetPosition = FlxPoint.get(target.x, target.y); // Creates this point.
}
_scrollTarget.x += (target.x - _lastTargetPosition.x) * followLead.x;
_scrollTarget.y += (target.y - _lastTargetPosition.y) * followLead.y;
_lastTargetPosition.x = target.x;
_lastTargetPosition.y = target.y;
}
if (followLerp >= 60 / FlxG.updateFramerate)
{
scroll.copyFrom(_scrollTarget); // no easing
}
else
{
// THIS THE PART THAT ACTUALLY MATTERS LOL
scroll.x = CoolUtil.coolLerp(scroll.x, _scrollTarget.x, followLerp);
scroll.y = CoolUtil.coolLerp(scroll.y, _scrollTarget.y, followLerp);
// scroll.x += (_scrollTarget.x - scroll.x) * CoolUtil.camLerpShit(followLerp);
// scroll.y += (_scrollTarget.y - scroll.y) * CoolUtil.camLerpShit(followLerp);
}
}
}
}

View file

@ -23,7 +23,7 @@ class PreferencesMenu extends ui.OptionsState.Page
{
super();
menuCamera = new FlxCamera();
menuCamera = new SwagCamera();
FlxG.cameras.add(menuCamera, false);
menuCamera.bgColor = 0x0;
camera = menuCamera;
@ -148,7 +148,7 @@ class PreferencesMenu extends ui.OptionsState.Page
{
super.update(elapsed);
menuCamera.followLerp = CoolUtil.camLerpShit(0.05);
// menuCamera.followLerp = CoolUtil.camLerpShit(0.05);
items.forEach(function(daItem:TextMenuItem)
{