This commit is contained in:
Cameron Taylor 2021-04-09 15:48:16 -04:00
commit 446190e676
7 changed files with 68 additions and 25 deletions

View File

@ -20,7 +20,7 @@ THESE INSTRUCTIONS ARE FOR COMPILING THE GAME'S SOURCE CODE!!!
IF YOU WANT TO JUST DOWNLOAD AND INSTALL AND PLAY THE GAME NORMALLY, GO TO ITCH.IO TO DOWNLOAD THE GAME FOR PC, MAC, AND LINUX!!
https://ninja-muffin24.itch.io/friday-night-funkin
https://ninja-muffin24.itch.io/funkin
IF YOU WANT TO COMPILE THE GAME YOURSELF, CONTINUE READING!!!
@ -40,10 +40,11 @@ newgrounds
```
So for each of those type `haxelib install [library]` so shit like `haxelib install newgrounds`
You'll also need to install polymod. To do this, you need to do a few things first.
You'll also need to install a couple things that involve Gits. To do this, you need to do a few things first.
1. Download [git-scm](https://git-scm.com/downloads). Works for Windows, Mac, and Linux, just select your build.
2. Follow instructions to install the application properly.
3. Run `haxelib git polymod https://github.com/larsiusprime/polymod.git` in terminal/command-prompt after your git program is installed.
3. Run `haxelib git polymod https://github.com/larsiusprime/polymod.git` to install Polymod.
4. Run `haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc` to install Discord RPC.
You should have everything ready for compiling the game! Follow the guide below to continue!

View File

@ -32,6 +32,11 @@ class DiscordClient
DiscordRpc.shutdown();
}
public static function shutdown()
{
DiscordRpc.shutdown();
}
static function onReady()
{
DiscordRpc.presence({

View File

@ -36,6 +36,7 @@ class FreeplayState extends MusicBeatState
private var iconArray:Array<HealthIcon> = [];
var bg:FlxSprite;
var scoreBG:FlxSprite;
override function create()
{
@ -118,7 +119,8 @@ class FreeplayState extends MusicBeatState
scoreText.setFormat(Paths.font("vcr.ttf"), 32, FlxColor.WHITE, RIGHT);
// scoreText.alignment = RIGHT;
var scoreBG:FlxSprite = new FlxSprite(scoreText.x - 6, 0).makeGraphic(Std.int(FlxG.width * 0.3), 66, 0xFF000000);
scoreBG = new FlxSprite(scoreText.x - 6, 0).makeGraphic(1, 66, 0xFF000000);
scoreBG.antialiasing = false;
scoreBG.alpha = 0.6;
add(scoreBG);
@ -201,6 +203,8 @@ class FreeplayState extends MusicBeatState
scoreText.text = "PERSONAL BEST:" + lerpScore;
positionHighscore();
var upP = controls.UI_UP_P;
var downP = controls.UI_DOWN_P;
var accepted = controls.ACCEPT;
@ -254,8 +258,7 @@ class FreeplayState extends MusicBeatState
PlayState.storyDifficulty = curDifficulty;
diffText.text = "< " + CoolUtil.difficultyString() + " >";
diffText.x = FlxG.width * 0.85;
diffText.x -= (diffText.width / 2);
positionHighscore();
}
function changeSelection(change:Int = 0)
@ -305,6 +308,16 @@ class FreeplayState extends MusicBeatState
}
}
}
function positionHighscore()
{
scoreText.x = FlxG.width - scoreText.width - 6;
scoreBG.scale.x = FlxG.width - scoreText.x + 6;
scoreBG.x = FlxG.width - scoreBG.scale.x / 2;
diffText.x = Std.int(scoreBG.x + scoreBG.width / 2);
diffText.x -= (diffText.width / 2);
}
}
class SongMetadata

View File

@ -25,6 +25,7 @@ class Note extends FlxSprite
public var tooLate:Bool = false;
public var wasGoodHit:Bool = false;
public var prevNote:Note;
private var willMiss:Bool = false;
public var sustainLength:Float = 0;
public var isSustainNote:Bool = false;
@ -126,7 +127,6 @@ class Note extends FlxSprite
case 0:
x += swagWidth * 0;
animation.play('purpleScroll');
case 1:
x += swagWidth * 1;
animation.play('blueScroll');
@ -201,15 +201,25 @@ class Note extends FlxSprite
if (mustPress)
{
// The * 0.5 is so that it's easier to hit them too late, instead of too early
if (strumTime > Conductor.songPosition - Conductor.safeZoneOffset
&& strumTime < Conductor.songPosition + (Conductor.safeZoneOffset * 0.5))
canBeHit = true;
else
canBeHit = false;
if (strumTime < Conductor.songPosition - Conductor.safeZoneOffset && !wasGoodHit)
// miss on the NEXT frame so lag doesnt make u miss notes
if (willMiss && !wasGoodHit)
{
tooLate = true;
canBeHit = false;
}
else
{
if (strumTime > Conductor.songPosition - Conductor.safeZoneOffset)
{ // The * 0.5 is so that it's easier to hit them too late, instead of too early
if (strumTime < Conductor.songPosition + (Conductor.safeZoneOffset * 0.5))
canBeHit = true;
}
else
{
canBeHit = true;
willMiss = true;
}
}
}
else
{

View File

@ -192,6 +192,8 @@ class PauseSubState extends MusicBeatSubstate
function changeSelection(change:Int = 0):Void
{
FlxG.sound.play(Paths.sound('scrollMenu'), 0.4);
curSelected += change;
if (curSelected < 0)

View File

@ -63,6 +63,7 @@ class PlayState extends MusicBeatState
var halloweenLevel:Bool = false;
private var vocals:FlxSound;
private var vocalsFinished:Bool = false;
private var dad:Character;
private var gf:Character;
@ -606,9 +607,6 @@ class PlayState extends MusicBeatState
gfVersion = 'gf-pixel';
}
if (curStage == 'limo')
gfVersion = 'gf-car';
if (SONG.song.toLowerCase() == 'stress')
gfVersion = 'pico-speaker';
@ -1489,6 +1487,9 @@ class PlayState extends MusicBeatState
else
vocals = new FlxSound();
vocals.onComplete = function(){
vocalsFinished = true;
};
FlxG.sound.list.add(vocals);
notes = new FlxTypedGroup<Note>();
@ -1745,7 +1746,7 @@ class PlayState extends MusicBeatState
#if discord_rpc
override public function onFocus():Void
{
if (health > 0 && !paused)
if (health > 0 && !paused && FlxG.autoPause)
{
if (Conductor.songPosition > 0.0)
{
@ -1762,7 +1763,7 @@ class PlayState extends MusicBeatState
override public function onFocusLost():Void
{
if (health > 0 && !paused)
if (health > 0 && !paused && FlxG.autoPause)
{
DiscordClient.changePresence(detailsPausedText, SONG.song + " (" + storyDifficultyText + ")", iconRPC);
}
@ -1773,10 +1774,16 @@ class PlayState extends MusicBeatState
function resyncVocals():Void
{
vocals.pause();
if (_exiting)
return ;
vocals.pause();
FlxG.sound.music.play();
Conductor.songPosition = FlxG.sound.music.time;
if (vocalsFinished)
return ;
vocals.time = Conductor.songPosition;
vocals.play();
}
@ -2845,11 +2852,12 @@ class PlayState extends MusicBeatState
if (curBeat % 8 == 7 && curSong == 'Bopeebo')
{
boyfriend.playAnim('hey', true);
}
if (SONG.song == 'Tutorial' && dad.curCharacter == 'gf')
{
dad.playAnim('cheer', true);
}
if (curBeat % 16 == 15 && SONG.song == 'Tutorial' && dad.curCharacter == 'gf' && curBeat > 16 && curBeat < 48)
{
boyfriend.playAnim('hey', true);
dad.playAnim('cheer', true);
}
foregroundSprites.forEach(function(spr:BGSprite)

View File

@ -105,6 +105,10 @@ class TitleState extends MusicBeatState
#if discord_rpc
DiscordClient.initialize();
Application.current.onExit.add (function (exitCode) {
DiscordClient.shutdown();
});
#end
}