1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-12-26 23:16:46 +00:00

RELEAAASE

This commit is contained in:
Cameron Taylor 2020-10-05 15:29:59 -07:00
parent 082abad735
commit 567a7af392
12 changed files with 142 additions and 11 deletions

View file

@ -3,7 +3,7 @@ color 0a
cd ..
@echo on
echo BUILDING GAME
lime build html5 -debug
lime build html5 -final -clean
echo UPLOADING TO ITCH
butler push ./export/debug/html5/bin ninja-muffin24/ld47:html5
butler status ninja-muffin24/ld47:html5

View file

@ -1,5 +1,5 @@
{
"song": "Fresh",
"bpm": 120,
"sections": 14
"sections": 16
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

BIN
assets/images/lose.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

32
assets/images/lose.xml Normal file
View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="lose.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="lose... instance 10000" x="707" y="0" width="778" height="206" frameX="-21" frameY="-68" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10001" x="707" y="0" width="778" height="206" frameX="-21" frameY="-68" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10002" x="0" y="462" width="763" height="282" frameX="-24" frameY="-37" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10003" x="0" y="0" width="702" height="457" frameX="-48" frameY="0" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10004" x="707" y="211" width="783" height="199" frameX="0" frameY="-314" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10005" x="707" y="211" width="783" height="199" frameX="0" frameY="-314" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10006" x="0" y="946" width="782" height="172" frameX="0" frameY="-311" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10007" x="0" y="946" width="782" height="172" frameX="0" frameY="-311" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10008" x="787" y="970" width="782" height="170" frameX="0" frameY="-318" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10009" x="0" y="749" width="783" height="192" frameX="0" frameY="-315" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10010" x="0" y="749" width="783" height="192" frameX="0" frameY="-315" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10011" x="788" y="789" width="783" height="176" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10012" x="788" y="789" width="783" height="176" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10013" x="768" y="415" width="783" height="185" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10014" x="768" y="415" width="783" height="185" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10015" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10016" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10017" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10018" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10019" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10020" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10021" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10022" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10023" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10024" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10025" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
<SubTexture name="lose... instance 10026" x="788" y="605" width="783" height="179" frameX="0" frameY="-316" frameWidth="799" frameHeight="513"/>
</TextureAtlas>

BIN
assets/images/restart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

51
source/GameOverState.hx Normal file
View file

@ -0,0 +1,51 @@
package;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.addons.transition.FlxTransitionableState;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.tweens.FlxEase;
import flixel.tweens.FlxTween;
class GameOverState extends FlxTransitionableState
{
override function create()
{
var loser:FlxSprite = new FlxSprite(100, 100);
var loseTex = FlxAtlasFrames.fromSparrow(AssetPaths.lose__png, AssetPaths.lose__xml);
loser.frames = loseTex;
loser.animation.addByPrefix('lose', 'lose', 24, false);
loser.animation.play('lose');
add(loser);
var restart:FlxSprite = new FlxSprite(500, 50).loadGraphic(AssetPaths.restart__png);
restart.setGraphicSize(Std.int(restart.width * 0.6));
restart.updateHitbox();
restart.alpha = 0;
restart.antialiasing = true;
add(restart);
FlxG.sound.music.fadeOut(2, FlxG.sound.music.volume * 0.6);
FlxTween.tween(restart, {alpha: 1}, 1, {ease: FlxEase.quartInOut});
FlxTween.tween(restart, {y: restart.y + 40}, 7, {ease: FlxEase.quartInOut, type: PINGPONG});
super.create();
}
private var fading:Bool = false;
override function update(elapsed:Float)
{
if (FlxG.keys.justPressed.ANY && !fading)
{
fading = true;
FlxG.sound.music.fadeOut(0.5, 0, function(twn:FlxTween)
{
FlxG.sound.music.stop();
FlxG.switchState(new PlayState());
});
}
super.update(elapsed);
}
}

View file

@ -9,7 +9,7 @@ class Main extends Sprite
public function new()
{
super();
addChild(new FlxGame(0, 0, PlayState));
addChild(new FlxGame(0, 0, TitleState));
#if !mobile
addChild(new FPS(10, 3, 0xFFFFFF));

View file

@ -27,6 +27,8 @@ using StringTools;
class PlayState extends FlxTransitionableState
{
public static var curLevel:String = 'Bopeebo';
private var lastBeat:Float = 0;
private var lastStep:Float = 0;
private var vocals:FlxSound;
@ -117,8 +119,9 @@ class PlayState extends FlxTransitionableState
var swagCounter:Int = 0;
generateSong('fresh');
generateSong(curLevel.toLowerCase());
countingDown = true;
Conductor.songPosition = 0;
Conductor.songPosition -= Conductor.crochet * 5;
new FlxTimer().start(Conductor.crochet / 1000, function(tmr:FlxTimer)
@ -214,7 +217,7 @@ class PlayState extends FlxTransitionableState
function startSong():Void
{
countingDown = false;
FlxG.sound.playMusic("assets/music/" + "Fresh" + "_Inst.mp3");
FlxG.sound.playMusic("assets/music/" + curLevel + "_Inst.mp3");
vocals.play();
}
@ -392,10 +395,16 @@ class PlayState extends FlxTransitionableState
healthHeads.setGraphicSize(Std.int(FlxMath.lerp(100, healthHeads.width, 0.98)));
healthHeads.x = healthBar.x + (healthBar.width * (FlxMath.remapToRange(healthBar.percent, 0, 100, 100, 0) * 0.01)) - (healthHeads.width / 2);
if (FlxG.keys.justPressed.NINE)
FlxG.switchState(new Charting());
if (FlxG.keys.justPressed.EIGHT)
FlxG.switchState(new Charting(true));
if (healthBar.percent < 10)
healthHeads.animation.play('unhealthy');
else
healthHeads.animation.play('healthy');
/*
if (FlxG.keys.justPressed.NINE)
FlxG.switchState(new Charting());
if (FlxG.keys.justPressed.EIGHT)
FlxG.switchState(new Charting(true));
*/
if (countingDown)
{
@ -451,12 +460,33 @@ class PlayState extends FlxTransitionableState
gfSpeed = 2;
case 112:
gfSpeed = 1;
case 163:
FlxG.sound.music.stop();
curLevel = 'Bopeebo';
FlxG.switchState(new TitleState());
}
}
if (curSong == 'Bopeebo')
{
switch (totalBeats)
{
case 127:
FlxG.sound.music.stop();
curLevel = 'Fresh';
FlxG.switchState(new PlayState());
}
}
everyBeat();
everyStep();
// better streaming of shit
if (health <= 0)
{
boyfriend.stunned = true;
FlxG.switchState(new GameOverState());
}
if (unspawnNotes[0] != null)
{
FlxG.watch.addQuick('spsa', unspawnNotes[0].strumTime);
@ -511,7 +541,10 @@ class PlayState extends FlxTransitionableState
if (daNote.y < -daNote.height)
{
if (daNote.tooLate)
{
health -= 0.05;
vocals.volume = 0;
}
daNote.active = false;
daNote.visible = false;
@ -687,6 +720,8 @@ class PlayState extends FlxTransitionableState
if (daNote.wasGoodHit)
{
daNote.kill();
notes.remove(daNote, true);
daNote.destroy();
}
}
}
@ -763,7 +798,7 @@ class PlayState extends FlxTransitionableState
{
if (!boyfriend.stunned)
{
health -= 0.075;
health -= 0.08;
if (combo > 5)
{
gf.playAnim('sad');
@ -827,6 +862,11 @@ class PlayState extends FlxTransitionableState
{
combo += 1;
if (note.noteData > 0)
health += 0.03;
else
health += 0.007;
switch (Math.abs(note.noteData))
{
case 1:
@ -850,6 +890,10 @@ class PlayState extends FlxTransitionableState
sectionScores[1][curSection] += note.noteScore;
note.wasGoodHit = true;
vocals.volume = 1;
note.kill();
notes.remove(note, true);
note.destroy();
}
}

View file

@ -45,7 +45,10 @@ class TitleState extends FlxTransitionableState
persistentUpdate = true;
var bg:FlxSprite = FlxGridOverlay.create(20, 20);
var bg:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.stageback__png);
bg.antialiasing = true;
bg.setGraphicSize(Std.int(bg.width * 0.6));
bg.updateHitbox();
add(bg);
var logoBl:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.logo__png);
@ -55,6 +58,7 @@ class TitleState extends FlxTransitionableState
var logo:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.logo__png);
logo.screenCenter();
logo.antialiasing = true;
add(logo);
FlxTween.tween(logoBl, {y: logoBl.y + 50}, 0.6, {ease: FlxEase.quadInOut, type: PINGPONG});