diff --git a/assets/data/tutorial/Tutorial.json b/assets/data/tutorial/Tutorial.json index 8d8308a60..fa0457e9f 100644 Binary files a/assets/data/tutorial/Tutorial.json and b/assets/data/tutorial/Tutorial.json differ diff --git a/assets/images/alphabet.png b/assets/images/alphabet.png new file mode 100644 index 000000000..7c1bddaaa Binary files /dev/null and b/assets/images/alphabet.png differ diff --git a/assets/images/alphabet.xml b/assets/images/alphabet.xml new file mode 100644 index 000000000..ca5eeccd1 --- /dev/null +++ b/assets/images/alphabet.xml @@ -0,0 +1,505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/speech_bubble_talking.png b/assets/images/speech_bubble_talking.png index bb8f56bc0..b10d26bce 100644 Binary files a/assets/images/speech_bubble_talking.png and b/assets/images/speech_bubble_talking.png differ diff --git a/assets/images/speech_bubble_talking.xml b/assets/images/speech_bubble_talking.xml index e36bc2eba..367e31a45 100644 --- a/assets/images/speech_bubble_talking.xml +++ b/assets/images/speech_bubble_talking.xml @@ -2,536 +2,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/Alphabet.hx b/source/Alphabet.hx new file mode 100644 index 000000000..b5cfff57c --- /dev/null +++ b/source/Alphabet.hx @@ -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 = 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); + } +} diff --git a/source/ChartingState.hx b/source/ChartingState.hx index 09fd9f684..87d0409f4 100644 --- a/source/ChartingState.hx +++ b/source/ChartingState.hx @@ -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(); diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx index cfbd52379..91c88adbf 100644 --- a/source/FreeplayState.hx +++ b/source/FreeplayState.hx @@ -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) { diff --git a/source/PlayState.hx b/source/PlayState.hx index f6c760722..56bafce7a 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -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(); 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(); }