bunch of polish bullshit
BIN
assets/images/GO0001.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/GO0002.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
assets/images/GO0003.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
assets/images/GO0004.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0005.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0006.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0007.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0008.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0009.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0010.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0011.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
assets/images/GO0012.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/GO0013.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/images/GO0014.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
assets/images/ready.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
assets/images/set.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
assets/music/title.mp3
Normal file
BIN
assets/music/titleShoot.mp3
Normal file
BIN
assets/sounds/freshIntro.mp3
Normal file
|
@ -9,7 +9,7 @@ class Main extends Sprite
|
||||||
public function new()
|
public function new()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
addChild(new FlxGame(0, 0, PlayState));
|
addChild(new FlxGame(0, 0, TitleState));
|
||||||
|
|
||||||
#if !mobile
|
#if !mobile
|
||||||
addChild(new FPS(10, 3, 0xFFFFFF));
|
addChild(new FPS(10, 3, 0xFFFFFF));
|
||||||
|
|
|
@ -5,12 +5,14 @@ import flixel.FlxObject;
|
||||||
import flixel.FlxSprite;
|
import flixel.FlxSprite;
|
||||||
import flixel.FlxState;
|
import flixel.FlxState;
|
||||||
import flixel.addons.display.FlxGridOverlay;
|
import flixel.addons.display.FlxGridOverlay;
|
||||||
|
import flixel.addons.transition.FlxTransitionableState;
|
||||||
import flixel.graphics.atlas.FlxAtlas;
|
import flixel.graphics.atlas.FlxAtlas;
|
||||||
import flixel.graphics.frames.FlxAtlasFrames;
|
import flixel.graphics.frames.FlxAtlasFrames;
|
||||||
import flixel.group.FlxGroup.FlxTypedGroup;
|
import flixel.group.FlxGroup.FlxTypedGroup;
|
||||||
import flixel.math.FlxMath;
|
import flixel.math.FlxMath;
|
||||||
import flixel.system.FlxSound;
|
import flixel.system.FlxSound;
|
||||||
import flixel.text.FlxText;
|
import flixel.text.FlxText;
|
||||||
|
import flixel.tweens.FlxEase;
|
||||||
import flixel.tweens.FlxTween;
|
import flixel.tweens.FlxTween;
|
||||||
import flixel.util.FlxCollision;
|
import flixel.util.FlxCollision;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
|
@ -22,7 +24,7 @@ import lime.utils.Assets;
|
||||||
|
|
||||||
using StringTools;
|
using StringTools;
|
||||||
|
|
||||||
class PlayState extends FlxState
|
class PlayState extends FlxTransitionableState
|
||||||
{
|
{
|
||||||
private var lastBeat:Float = 0;
|
private var lastBeat:Float = 0;
|
||||||
private var lastStep:Float = 0;
|
private var lastStep:Float = 0;
|
||||||
|
@ -55,8 +57,14 @@ class PlayState extends FlxState
|
||||||
private var health:Float = 1;
|
private var health:Float = 1;
|
||||||
private var combo:Int = 0;
|
private var combo:Int = 0;
|
||||||
|
|
||||||
|
private var generatedMusic:Bool = false;
|
||||||
|
private var countingDown:Bool = false;
|
||||||
|
|
||||||
override public function create()
|
override public function create()
|
||||||
{
|
{
|
||||||
|
persistentUpdate = true;
|
||||||
|
persistentDraw = true;
|
||||||
|
|
||||||
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.bg__png);
|
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(AssetPaths.bg__png);
|
||||||
bg.setGraphicSize(Std.int(bg.width * 2.5));
|
bg.setGraphicSize(Std.int(bg.width * 2.5));
|
||||||
bg.updateHitbox();
|
bg.updateHitbox();
|
||||||
|
@ -85,11 +93,35 @@ class PlayState extends FlxState
|
||||||
|
|
||||||
playerStrums = new FlxTypedGroup<FlxSprite>();
|
playerStrums = new FlxTypedGroup<FlxSprite>();
|
||||||
|
|
||||||
|
var swagCounter:Int = 0;
|
||||||
|
|
||||||
generateSong('fresh');
|
generateSong('fresh');
|
||||||
|
countingDown = true;
|
||||||
|
Conductor.songPosition -= Conductor.crochet * 4;
|
||||||
|
|
||||||
|
new FlxTimer().start(Conductor.crochet / 1000, function(tmr:FlxTimer)
|
||||||
|
{
|
||||||
|
switch (swagCounter)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
FlxG.sound.play('assets/sounds/freshIntro.mp3', 0.6);
|
||||||
|
case 1:
|
||||||
|
FlxG.sound.play('assets/sounds/freshIntro.mp3', 0.6);
|
||||||
|
case 2:
|
||||||
|
FlxG.sound.play('assets/sounds/freshIntro.mp3', 0.6);
|
||||||
|
case 3:
|
||||||
|
FlxG.sound.play('assets/sounds/freshIntro.mp3', 0.6);
|
||||||
|
case 4:
|
||||||
|
}
|
||||||
|
|
||||||
|
swagCounter += 1;
|
||||||
|
// generateSong('fresh');
|
||||||
|
}, 5);
|
||||||
|
|
||||||
// add(strumLine);
|
// add(strumLine);
|
||||||
|
|
||||||
camFollow = new FlxObject(0, 0, 1, 1);
|
camFollow = new FlxObject(0, 0, 1, 1);
|
||||||
|
camFollow.setPosition(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
|
||||||
add(camFollow);
|
add(camFollow);
|
||||||
|
|
||||||
FlxG.camera.follow(camFollow, LOCKON, 0.04);
|
FlxG.camera.follow(camFollow, LOCKON, 0.04);
|
||||||
|
@ -103,24 +135,30 @@ class PlayState extends FlxState
|
||||||
super.create();
|
super.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function startSong():Void
|
||||||
|
{
|
||||||
|
countingDown = false;
|
||||||
|
FlxG.sound.playMusic("assets/music/" + "Fresh" + "_Inst.mp3");
|
||||||
|
vocals.play();
|
||||||
|
}
|
||||||
|
|
||||||
var debugNum:Int = 0;
|
var debugNum:Int = 0;
|
||||||
|
|
||||||
private function generateSong(dataPath:String):Void
|
private function generateSong(dataPath:String):Void
|
||||||
{
|
{
|
||||||
// FlxG.log.add(ChartParser.parse());
|
// FlxG.log.add(ChartParser.parse());
|
||||||
|
generatedMusic = true;
|
||||||
|
|
||||||
generateStaticArrows(0);
|
generateStaticArrows(0);
|
||||||
generateStaticArrows(1);
|
generateStaticArrows(1);
|
||||||
|
|
||||||
var songData = Json.parse(Assets.getText('assets/data/' + dataPath + '/' + dataPath + '.json'));
|
var songData = Json.parse(Assets.getText('assets/data/' + dataPath + '/' + dataPath + '.json'));
|
||||||
Conductor.changeBPM(songData.bpm);
|
Conductor.changeBPM(songData.bpm);
|
||||||
FlxG.sound.playMusic("assets/music/" + songData.song + "_Inst.mp3");
|
|
||||||
|
|
||||||
curSong = songData.song;
|
curSong = songData.song;
|
||||||
|
|
||||||
vocals = new FlxSound().loadEmbedded("assets/music/" + songData.song + "_Voices.mp3");
|
vocals = new FlxSound().loadEmbedded("assets/music/" + curSong + "_Voices.mp3");
|
||||||
FlxG.sound.list.add(vocals);
|
FlxG.sound.list.add(vocals);
|
||||||
vocals.play();
|
|
||||||
|
|
||||||
notes = new FlxTypedGroup<Note>();
|
notes = new FlxTypedGroup<Note>();
|
||||||
add(notes);
|
add(notes);
|
||||||
|
@ -226,6 +264,10 @@ class PlayState extends FlxState
|
||||||
babyArrow.updateHitbox();
|
babyArrow.updateHitbox();
|
||||||
babyArrow.antialiasing = true;
|
babyArrow.antialiasing = true;
|
||||||
|
|
||||||
|
babyArrow.y -= 10;
|
||||||
|
babyArrow.alpha = 0;
|
||||||
|
FlxTween.tween(babyArrow, {y: babyArrow.y + 10, alpha: 1}, 1, {ease: FlxEase.circOut, startDelay: 0.5 + (0.2 * i)});
|
||||||
|
|
||||||
babyArrow.ID = i + 1;
|
babyArrow.ID = i + 1;
|
||||||
|
|
||||||
if (player == 1)
|
if (player == 1)
|
||||||
|
@ -276,6 +318,14 @@ class PlayState extends FlxState
|
||||||
if (FlxG.keys.justPressed.EIGHT)
|
if (FlxG.keys.justPressed.EIGHT)
|
||||||
FlxG.switchState(new Charting(true));
|
FlxG.switchState(new Charting(true));
|
||||||
|
|
||||||
|
if (countingDown)
|
||||||
|
{
|
||||||
|
Conductor.songPosition += FlxG.elapsed * 1000;
|
||||||
|
|
||||||
|
if (Conductor.songPosition >= 0)
|
||||||
|
startSong();
|
||||||
|
}
|
||||||
|
else
|
||||||
Conductor.songPosition = FlxG.sound.music.time;
|
Conductor.songPosition = FlxG.sound.music.time;
|
||||||
var playerTurn:Int = totalBeats % (sectionLengths[curSection] * 8);
|
var playerTurn:Int = totalBeats % (sectionLengths[curSection] * 8);
|
||||||
|
|
||||||
|
@ -285,7 +335,7 @@ class PlayState extends FlxState
|
||||||
sectionScored = true;
|
sectionScored = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerTurn == 0)
|
if (playerTurn == 0 && generatedMusic)
|
||||||
{
|
{
|
||||||
if (camFollow.x != dad.getGraphicMidpoint().x + 150)
|
if (camFollow.x != dad.getGraphicMidpoint().x + 150)
|
||||||
camFollow.setPosition(dad.getGraphicMidpoint().x + 150, dad.getGraphicMidpoint().y - 100);
|
camFollow.setPosition(dad.getGraphicMidpoint().x + 150, dad.getGraphicMidpoint().y - 100);
|
||||||
|
@ -343,6 +393,8 @@ class PlayState extends FlxState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (generatedMusic)
|
||||||
|
{
|
||||||
notes.forEachAlive(function(daNote:Note)
|
notes.forEachAlive(function(daNote:Note)
|
||||||
{
|
{
|
||||||
if (daNote.y > FlxG.height)
|
if (daNote.y > FlxG.height)
|
||||||
|
@ -394,8 +446,7 @@ class PlayState extends FlxState
|
||||||
if (!sortedNotes)
|
if (!sortedNotes)
|
||||||
notes.sort(FlxSort.byY, FlxSort.DESCENDING);
|
notes.sort(FlxSort.byY, FlxSort.DESCENDING);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
FlxG.watch.addQuick('length', notes.length);
|
|
||||||
|
|
||||||
keyShit();
|
keyShit();
|
||||||
}
|
}
|
||||||
|
@ -521,7 +572,7 @@ class PlayState extends FlxState
|
||||||
var leftR = FlxG.keys.anyJustReleased([A, LEFT]);
|
var leftR = FlxG.keys.anyJustReleased([A, LEFT]);
|
||||||
|
|
||||||
FlxG.watch.addQuick('asdfa', upP);
|
FlxG.watch.addQuick('asdfa', upP);
|
||||||
if ((upP || rightP || downP || leftP) && !boyfriend.stunned)
|
if ((upP || rightP || downP || leftP) && !boyfriend.stunned && generatedMusic)
|
||||||
{
|
{
|
||||||
var possibleNotes:Array<Note> = [];
|
var possibleNotes:Array<Note> = [];
|
||||||
|
|
||||||
|
@ -566,7 +617,7 @@ class PlayState extends FlxState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((up || right || down || left) && !boyfriend.stunned)
|
if ((up || right || down || left) && !boyfriend.stunned && generatedMusic)
|
||||||
{
|
{
|
||||||
notes.forEach(function(daNote:Note)
|
notes.forEach(function(daNote:Note)
|
||||||
{
|
{
|
||||||
|
@ -634,7 +685,7 @@ class PlayState extends FlxState
|
||||||
if (!boyfriend.stunned)
|
if (!boyfriend.stunned)
|
||||||
{
|
{
|
||||||
health -= 0.075;
|
health -= 0.075;
|
||||||
if (combo > 10)
|
if (combo > 5)
|
||||||
{
|
{
|
||||||
gf.playAnim('sad');
|
gf.playAnim('sad');
|
||||||
}
|
}
|
||||||
|
|
86
source/TitleState.hx
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
package;
|
||||||
|
|
||||||
|
import flixel.FlxG;
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
import flixel.FlxState;
|
||||||
|
import flixel.addons.display.FlxGridOverlay;
|
||||||
|
import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond;
|
||||||
|
import flixel.addons.transition.FlxTransitionableState;
|
||||||
|
import flixel.addons.transition.TransitionData;
|
||||||
|
import flixel.graphics.FlxGraphic;
|
||||||
|
import flixel.math.FlxPoint;
|
||||||
|
import flixel.math.FlxRect;
|
||||||
|
import flixel.tweens.FlxEase;
|
||||||
|
import flixel.tweens.FlxTween;
|
||||||
|
import flixel.util.FlxColor;
|
||||||
|
import flixel.util.FlxTimer;
|
||||||
|
|
||||||
|
class TitleState extends FlxTransitionableState
|
||||||
|
{
|
||||||
|
static var initialized:Bool = false;
|
||||||
|
|
||||||
|
override public function create():Void
|
||||||
|
{
|
||||||
|
super.create();
|
||||||
|
|
||||||
|
if (!initialized)
|
||||||
|
{
|
||||||
|
var diamond:FlxGraphic = FlxGraphic.fromClass(GraphicTransTileDiamond);
|
||||||
|
diamond.persist = true;
|
||||||
|
diamond.destroyOnNoUse = false;
|
||||||
|
|
||||||
|
FlxTransitionableState.defaultTransIn = new TransitionData(FADE, FlxColor.BLACK, 2, new FlxPoint(0, -1), {asset: diamond, width: 32, height: 32},
|
||||||
|
new FlxRect(0, 0, FlxG.width, FlxG.height));
|
||||||
|
FlxTransitionableState.defaultTransOut = new TransitionData(FADE, FlxColor.BLACK, 1.3, new FlxPoint(0, 1),
|
||||||
|
{asset: diamond, width: 32, height: 32}, new FlxRect(0, 0, FlxG.width, FlxG.height));
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
|
FlxTransitionableState.defaultTransIn.tileData = {asset: diamond, width: 32, height: 32};
|
||||||
|
FlxTransitionableState.defaultTransOut.tileData = {asset: diamond, width: 32, height: 32};
|
||||||
|
|
||||||
|
transIn = FlxTransitionableState.defaultTransIn;
|
||||||
|
transOut = FlxTransitionableState.defaultTransOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
persistentUpdate = true;
|
||||||
|
|
||||||
|
var bg:FlxSprite = FlxGridOverlay.create(20, 20);
|
||||||
|
add(bg);
|
||||||
|
|
||||||
|
var logoBl:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.logo__png);
|
||||||
|
logoBl.screenCenter();
|
||||||
|
logoBl.color = FlxColor.BLACK;
|
||||||
|
add(logoBl);
|
||||||
|
|
||||||
|
var logo:FlxSprite = new FlxSprite().loadGraphic(AssetPaths.logo__png);
|
||||||
|
logo.screenCenter();
|
||||||
|
add(logo);
|
||||||
|
|
||||||
|
FlxTween.tween(logoBl, {y: logoBl.y + 50}, 0.6, {ease: FlxEase.quadInOut, type: PINGPONG});
|
||||||
|
FlxTween.tween(logo, {y: logoBl.y + 50}, 0.6, {ease: FlxEase.quadInOut, type: PINGPONG, startDelay: 0.1});
|
||||||
|
|
||||||
|
FlxG.sound.playMusic('assets/music/title.mp3', 0, false);
|
||||||
|
|
||||||
|
FlxG.sound.music.fadeIn(4, 0, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
var transitioning:Bool = false;
|
||||||
|
|
||||||
|
override function update(elapsed:Float)
|
||||||
|
{
|
||||||
|
if (FlxG.keys.justPressed.ENTER && !transitioning)
|
||||||
|
{
|
||||||
|
transitioning = true;
|
||||||
|
FlxG.sound.music.stop();
|
||||||
|
|
||||||
|
new FlxTimer().start(2, function(tmr:FlxTimer)
|
||||||
|
{
|
||||||
|
FlxG.switchState(new PlayState());
|
||||||
|
});
|
||||||
|
FlxG.sound.play('assets/music/titleShoot.mp3', 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
super.update(elapsed);
|
||||||
|
}
|
||||||
|
}
|