1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-10-05 17:00:39 +00:00

adding in cool text shit

This commit is contained in:
Cameron Taylor 2020-10-25 13:51:06 -07:00
parent 43682dd30d
commit e78a08d765
4 changed files with 116 additions and 4 deletions

85
source/Alphabet.hx Normal file
View file

@ -0,0 +1,85 @@
package;
import flixel.FlxSprite;
import flixel.graphics.frames.FlxAtlasFrames;
import flixel.group.FlxSpriteGroup;
using StringTools;
class Alphabet extends FlxSpriteGroup
{
// custom shit
// amp, backslash, question mark, apostrophy, comma, angry faic, period
var lastSprite:AlphaCharacter;
public function new(x:Float, y:Float, text:String = "", ?bold:Bool = false)
{
super(x, y);
var arrayShit:Array<String> = text.split("");
trace(arrayShit);
var loopNum:Int = 0;
for (character in arrayShit)
{
if (character == " ")
{
}
if (AlphaCharacter.alphabet.contains(character.toLowerCase()))
{
var xPos:Float = 0;
if (lastSprite != null)
{
xPos = lastSprite.x + lastSprite.frameWidth - 40;
}
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 0);
letter.createBold(character);
add(letter);
lastSprite = letter;
}
loopNum += 1;
}
}
}
class AlphaCharacter extends FlxSprite
{
public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz";
var numbers:String = "1234567890";
var symbols:String = "|~#$%()*+-:;<=>@[]^_";
public function new(x:Float, y:Float)
{
super(x, y);
var tex = FlxAtlasFrames.fromSparrow(AssetPaths.alphabet__png, AssetPaths.alphabet__xml);
frames = tex;
antialiasing = true;
}
public function createBold(letter:String)
{
animation.addByPrefix(letter, letter.toUpperCase() + " bold", 24);
animation.play(letter);
updateHitbox();
}
public function createLetter(letter:String):Void
{
var letterCase:String = "lowercase";
if (letter.toLowerCase() != letter)
{
letterCase = 'capital';
}
animation.addByPrefix(letter, letter + " " + letterCase, 24);
animation.play(letter);
}
}

View file

@ -80,7 +80,17 @@ class ChartingState extends MusicBeatState
_song = PlayState.SONG;
else
{
_song = Song.loadFromJson('tutorial');
_song = {
song: 'tutorial',
notes: [],
bpm: 100,
sections: 0,
needsVoices: false,
player1: 'bf',
player2: 'dad',
sectionLengths: [],
speed: 1
};
}
addSection();

View file

@ -2,6 +2,7 @@ package;
import flixel.FlxG;
import flixel.FlxSprite;
import flixel.addons.display.FlxGridOverlay;
import flixel.text.FlxText;
class FreeplayState extends MusicBeatState
@ -17,17 +18,22 @@ class FreeplayState extends MusicBeatState
// LOAD CHARACTERS
var bg:FlxSprite = FlxGridOverlay.create(20, 20);
add(bg);
for (i in 0...songs.length)
{
var songText:FlxText = new FlxText(10, (26 * i) + 30, 0, songs[i], 24);
var songText:Alphabet = new Alphabet(40, (70 * i) + 30, songs[i]);
add(songText);
}
selector = new FlxText();
selector.size = 24;
selector.size = 40;
selector.text = ">";
add(selector);
var swag:Alphabet = new Alphabet(1, 0, "swag");
super.create();
}
@ -47,7 +53,7 @@ class FreeplayState extends MusicBeatState
if (curSelected >= songs.length)
curSelected = 0;
selector.y = (26 * curSelected) + 30;
selector.y = (70 * curSelected) + 30;
if (FlxG.keys.justPressed.ENTER)
{

View file

@ -2,6 +2,8 @@ package;
import Section.SwagSection;
import Song.SwagSong;
import flixel.FlxBasic;
import flixel.FlxCamera;
import flixel.FlxG;
import flixel.FlxGame;
import flixel.FlxObject;
@ -67,6 +69,7 @@ class PlayState extends MusicBeatState
private var startingSong:Bool = false;
private var healthHeads:FlxSprite;
private var UI_camera:FlxCamera;
var controls(get, never):Controls;
@ -131,6 +134,10 @@ class PlayState extends MusicBeatState
strumLine = new FlxSprite(0, 50).makeGraphic(FlxG.width, 10);
strumLine.scrollFactor.set();
var gameCam:FlxCamera = FlxG.camera;
UI_camera = new FlxCamera(0, 0, FlxG.width, FlxG.height, 1);
strumLineNotes = new FlxTypedGroup<FlxSprite>();
add(strumLineNotes);
@ -178,6 +185,10 @@ class PlayState extends MusicBeatState
healthHeads.antialiasing = true;
add(healthHeads);
// strumLineNotes.camera = UI_camera;
// camera = FlxG.camera;
// FlxG.cameras.add(UI_camera);
super.create();
}