mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-27 09:13:18 +00:00
UI and menu bullshit
This commit is contained in:
parent
51be7b67f1
commit
9b53f111a2
|
@ -41,6 +41,8 @@
|
||||||
<assets path="assets/sounds" include="*.mp3" if="web" />
|
<assets path="assets/sounds" include="*.mp3" if="web" />
|
||||||
<assets path="assets/sounds" include="*.ogg" unless="web" />
|
<assets path="assets/sounds" include="*.ogg" unless="web" />
|
||||||
|
|
||||||
|
<assets path="assets/fonts/vcr.ttf" embed="true" />
|
||||||
|
|
||||||
|
|
||||||
<!-- _______________________________ Libraries ______________________________ -->
|
<!-- _______________________________ Libraries ______________________________ -->
|
||||||
|
|
||||||
|
|
35
source/MenuItem.hx
Normal file
35
source/MenuItem.hx
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
package;
|
||||||
|
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
import flixel.graphics.frames.FlxAtlasFrames;
|
||||||
|
import flixel.group.FlxSpriteGroup;
|
||||||
|
|
||||||
|
class MenuItem extends FlxSpriteGroup
|
||||||
|
{
|
||||||
|
public function new(x:Float, y:Float, week:Int = 0, unlocked:Bool = false)
|
||||||
|
{
|
||||||
|
super(x, y);
|
||||||
|
|
||||||
|
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml);
|
||||||
|
|
||||||
|
var week:FlxSprite = new FlxSprite();
|
||||||
|
week.frames = tex;
|
||||||
|
week.animation.addByPrefix('week0', "WEEK1 select", 24);
|
||||||
|
week.animation.addByPrefix('week1', "week2 select", 24);
|
||||||
|
add(week);
|
||||||
|
|
||||||
|
week.animation.play('week' + week);
|
||||||
|
week.updateHitbox();
|
||||||
|
|
||||||
|
if (!unlocked)
|
||||||
|
{
|
||||||
|
week.alpha = 0.6;
|
||||||
|
|
||||||
|
var lock:FlxSprite = new FlxSprite(week.frameWidth + 5);
|
||||||
|
lock.frames = tex;
|
||||||
|
lock.animation.addByPrefix('lock', 'lock');
|
||||||
|
lock.animation.play('lock');
|
||||||
|
add(lock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
102
source/StoryMenuState.hx
Normal file
102
source/StoryMenuState.hx
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
package;
|
||||||
|
|
||||||
|
import flixel.FlxG;
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
import flixel.graphics.frames.FlxAtlasFrames;
|
||||||
|
import flixel.text.FlxText;
|
||||||
|
|
||||||
|
using StringTools;
|
||||||
|
|
||||||
|
class StoryMenuState extends MusicBeatState
|
||||||
|
{
|
||||||
|
var scoreText:FlxText;
|
||||||
|
|
||||||
|
var weekData:Array<Dynamic> = [['Tutorial', 'Bopeebo', 'Fresh', 'Dad Battle'], ['Spookeez', 'South', 'Monster']];
|
||||||
|
|
||||||
|
var curWeek:Int = 0;
|
||||||
|
|
||||||
|
var txtTracklist:FlxText;
|
||||||
|
|
||||||
|
override function create()
|
||||||
|
{
|
||||||
|
scoreText = new FlxText(10, 10, 0, "SCORE: 49324858", 36);
|
||||||
|
scoreText.setFormat("VCR OSD Mono", 32);
|
||||||
|
add(scoreText);
|
||||||
|
|
||||||
|
var rankText:FlxText = new FlxText(0, 10);
|
||||||
|
rankText.text = 'RANK: GREAT';
|
||||||
|
rankText.setFormat("assets/fonts/vcr.ttf", 32);
|
||||||
|
rankText.size = scoreText.size;
|
||||||
|
rankText.screenCenter(X);
|
||||||
|
add(rankText);
|
||||||
|
|
||||||
|
var ui_tex = FlxAtlasFrames.fromSparrow(AssetPaths.campaign_menu_UI_assets__png, AssetPaths.campaign_menu_UI_assets__xml);
|
||||||
|
var yellowBG:FlxSprite = new FlxSprite(0, 56).makeGraphic(FlxG.width, 400, 0xFFF9CF51);
|
||||||
|
|
||||||
|
for (i in 0...weekData.length)
|
||||||
|
{
|
||||||
|
var unlocked:Bool = true;
|
||||||
|
|
||||||
|
if (i == 1)
|
||||||
|
unlocked = false;
|
||||||
|
|
||||||
|
var weekThing:MenuItem = new MenuItem(0, yellowBG.y + yellowBG.height + 10, i, unlocked);
|
||||||
|
add(weekThing);
|
||||||
|
}
|
||||||
|
|
||||||
|
add(yellowBG);
|
||||||
|
|
||||||
|
txtTracklist = new FlxText(FlxG.width * 0.05, yellowBG.x + yellowBG.height + 100, 0, "Tracks", 32);
|
||||||
|
txtTracklist.alignment = CENTER;
|
||||||
|
txtTracklist.font = rankText.font;
|
||||||
|
txtTracklist.color = 0xFFe55777;
|
||||||
|
add(txtTracklist);
|
||||||
|
|
||||||
|
updateText();
|
||||||
|
|
||||||
|
super.create();
|
||||||
|
}
|
||||||
|
|
||||||
|
override function update(elapsed:Float)
|
||||||
|
{
|
||||||
|
// scoreText.setFormat('VCR OSD Mono', 32);
|
||||||
|
// scoreText.text = "Score SHIT";
|
||||||
|
// FlxG.watch.addQuick('font', scoreText.font);
|
||||||
|
|
||||||
|
if (controls.UP_P)
|
||||||
|
changeWeek(-1);
|
||||||
|
if (controls.DOWN_P)
|
||||||
|
changeWeek(1);
|
||||||
|
|
||||||
|
super.update(elapsed);
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeWeek(change:Int = 0):Void
|
||||||
|
{
|
||||||
|
curWeek += change;
|
||||||
|
|
||||||
|
if (curWeek >= weekData.length)
|
||||||
|
curWeek = 0;
|
||||||
|
if (curWeek < 0)
|
||||||
|
curWeek = weekData.length - 1;
|
||||||
|
|
||||||
|
updateText();
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateText()
|
||||||
|
{
|
||||||
|
txtTracklist.text = "Tracks\n";
|
||||||
|
|
||||||
|
var stringThing:Array<String> = weekData[curWeek];
|
||||||
|
|
||||||
|
for (i in stringThing)
|
||||||
|
{
|
||||||
|
txtTracklist.text += "\n" + i;
|
||||||
|
}
|
||||||
|
|
||||||
|
txtTracklist.text.toUpperCase();
|
||||||
|
|
||||||
|
txtTracklist.screenCenter(X);
|
||||||
|
txtTracklist.x -= FlxG.width * 0.35;
|
||||||
|
}
|
||||||
|
}
|
|
@ -41,7 +41,7 @@ class TitleState extends MusicBeatState
|
||||||
super.create();
|
super.create();
|
||||||
|
|
||||||
#if SKIP_TO_PLAYSTATE
|
#if SKIP_TO_PLAYSTATE
|
||||||
FlxG.switchState(new FreeplayState());
|
FlxG.switchState(new StoryMenuState());
|
||||||
#else
|
#else
|
||||||
startIntro();
|
startIntro();
|
||||||
#end
|
#end
|
||||||
|
|
Loading…
Reference in a new issue