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

text shit cookin

This commit is contained in:
Cameron Taylor 2020-10-31 00:32:51 -07:00
parent df85d4324a
commit 6f002e3d1e
14 changed files with 128 additions and 19 deletions

View file

@ -94,5 +94,5 @@
<!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)--> <!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)-->
<icon path="art/icon.png"/> <icon path="art/icon.png"/>
<haxedef name="SKIP_TO_PLAYSTATE" if="debug" /> <!-- <haxedef name="SKIP_TO_PLAYSTATE" if="debug" /> -->
</project> </project>

BIN
assets/sounds/GF_1.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_1.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_2.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_2.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_3.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_3.ogg Normal file

Binary file not shown.

BIN
assets/sounds/GF_4.mp3 Normal file

Binary file not shown.

BIN
assets/sounds/GF_4.ogg Normal file

Binary file not shown.

View file

@ -61,6 +61,7 @@ class Alphabet extends FlxSpriteGroup
{ {
doSplitWords(); doSplitWords();
var xPos:Float = 0;
for (character in splitWords) for (character in splitWords)
{ {
// if (character.fastCodeAt() == " ") // if (character.fastCodeAt() == " ")
@ -74,10 +75,9 @@ class Alphabet extends FlxSpriteGroup
if (AlphaCharacter.alphabet.contains(character.toLowerCase())) if (AlphaCharacter.alphabet.contains(character.toLowerCase()))
{ {
var xPos:Float = 0;
if (lastSprite != null) if (lastSprite != null)
{ {
xPos = lastSprite.x + lastSprite.width - 40; xPos = lastSprite.x + lastSprite.width;
} }
if (lastWasSpace) if (lastWasSpace)
@ -92,7 +92,9 @@ class Alphabet extends FlxSpriteGroup
if (isBold) if (isBold)
letter.createBold(character); letter.createBold(character);
else else
{
letter.createLetter(character); letter.createLetter(character);
}
add(letter); add(letter);
@ -108,6 +110,8 @@ class Alphabet extends FlxSpriteGroup
splitWords = _finalText.split(""); splitWords = _finalText.split("");
} }
public var personTalking:String = 'gf';
public function startTypedText():Void public function startTypedText():Void
{ {
_finalText = text; _finalText = text;
@ -118,6 +122,7 @@ class Alphabet extends FlxSpriteGroup
var loopNum:Int = 0; var loopNum:Int = 0;
var xPos:Float = 0; var xPos:Float = 0;
var curRow:Int = 0;
new FlxTimer().start(0.05, function(tmr:FlxTimer) new FlxTimer().start(0.05, function(tmr:FlxTimer)
{ {
@ -126,7 +131,8 @@ class Alphabet extends FlxSpriteGroup
{ {
yMulti += 1; yMulti += 1;
xPosResetted = true; xPosResetted = true;
// xPos = 0; xPos = 0;
curRow += 1;
} }
if (splitWords[loopNum] == " ") if (splitWords[loopNum] == " ")
@ -134,7 +140,9 @@ class Alphabet extends FlxSpriteGroup
lastWasSpace = true; lastWasSpace = true;
} }
if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase())) var isNumber:Bool = AlphaCharacter.numbers.contains(splitWords[loopNum]);
var isSymbol:Bool = AlphaCharacter.symbols.contains(splitWords[loopNum]);
if (AlphaCharacter.alphabet.contains(splitWords[loopNum].toLowerCase()) || isNumber || isSymbol)
{ {
if (lastSprite != null && !xPosResetted) if (lastSprite != null && !xPosResetted)
{ {
@ -157,16 +165,35 @@ class Alphabet extends FlxSpriteGroup
// var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0); // var letter:AlphaCharacter = new AlphaCharacter(30 * loopNum, 0);
var letter:AlphaCharacter = new AlphaCharacter(xPos, 55 * yMulti); var letter:AlphaCharacter = new AlphaCharacter(xPos, 55 * yMulti);
letter.row = curRow;
if (isBold) if (isBold)
{ {
letter.createBold(splitWords[loopNum]); letter.createBold(splitWords[loopNum]);
} }
else else
{ {
letter.createLetter(splitWords[loopNum]); if (isNumber)
{
letter.createNumber(splitWords[loopNum]);
}
else if (isSymbol)
{
letter.createSymbol(splitWords[loopNum]);
}
else
{
letter.createLetter(splitWords[loopNum]);
}
letter.x += 90; letter.x += 90;
} }
if (FlxG.random.bool(40))
{
var daSound:String = "GF_";
FlxG.sound.play('assets/sounds/' + daSound + FlxG.random.int(1, 4) + TitleState.soundExt, 0.4);
}
add(letter); add(letter);
lastSprite = letter; lastSprite = letter;
@ -174,7 +201,7 @@ class Alphabet extends FlxSpriteGroup
loopNum += 1; loopNum += 1;
tmr.time = FlxG.random.float(0.05, 0.12); tmr.time = FlxG.random.float(0.04, 0.09);
}, splitWords.length); }, splitWords.length);
} }
@ -188,8 +215,11 @@ class AlphaCharacter extends FlxSprite
{ {
public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz"; public static var alphabet:String = "abcdefghijklmnopqrstuvwxyz";
var numbers:String = "1234567890"; public static var numbers:String = "1234567890";
var symbols:String = "|~#$%()*+-:;<=>@[]^_";
public static var symbols:String = "|~#$%()*+-:;<=>@[]^_.,'!?";
public var row:Int = 0;
public function new(x:Float, y:Float) public function new(x:Float, y:Float)
{ {
@ -218,5 +248,41 @@ class AlphaCharacter extends FlxSprite
animation.addByPrefix(letter, letter + " " + letterCase, 24); animation.addByPrefix(letter, letter + " " + letterCase, 24);
animation.play(letter); animation.play(letter);
updateHitbox(); updateHitbox();
FlxG.log.add('the row' + row);
y = (110 - height);
y += row * 60;
}
public function createNumber(letter:String):Void
{
animation.addByPrefix(letter, letter, 24);
animation.play(letter);
updateHitbox();
}
public function createSymbol(letter:String)
{
switch (letter)
{
case '.':
animation.addByPrefix(letter, 'period', 24);
animation.play(letter);
y += 50;
case "'":
animation.addByPrefix(letter, 'apostraphie', 24);
animation.play(letter);
y -= 0;
case "?":
animation.addByPrefix(letter, 'question mark', 24);
animation.play(letter);
case "!":
animation.addByPrefix(letter, 'exclamation point', 24);
animation.play(letter);
}
updateHitbox();
} }
} }

View file

@ -84,7 +84,7 @@ class MainMenuState extends MusicBeatState
} }
else else
{ {
FlxFlicker.flicker(magenta, 0, 0.40); FlxFlicker.flicker(magenta, 0, 0.30);
menuItems.forEach(function(spr:FlxSprite) menuItems.forEach(function(spr:FlxSprite)
{ {

View file

@ -16,6 +16,7 @@ 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.math.FlxPoint;
import flixel.system.FlxSound; import flixel.system.FlxSound;
import flixel.text.FlxText; import flixel.text.FlxText;
import flixel.tweens.FlxEase; import flixel.tweens.FlxEase;
@ -33,7 +34,7 @@ using StringTools;
class PlayState extends MusicBeatState class PlayState extends MusicBeatState
{ {
public static var curLevel:String = 'Bopeebo'; public static var curLevel:String = 'Tutorial';
public static var SONG:SwagSong; public static var SONG:SwagSong;
public static var isStoryMode:Bool = false; public static var isStoryMode:Bool = false;
public static var storyPlaylist:Array<String> = []; public static var storyPlaylist:Array<String> = [];
@ -77,6 +78,8 @@ class PlayState extends MusicBeatState
var halloweenBG:FlxSprite; var halloweenBG:FlxSprite;
var talking:Bool = true;
override public function create() override public function create()
{ {
// var gameCam:FlxCamera = FlxG.camera; // var gameCam:FlxCamera = FlxG.camera;
@ -97,6 +100,19 @@ class PlayState extends MusicBeatState
Conductor.changeBPM(SONG.bpm); Conductor.changeBPM(SONG.bpm);
switch (SONG.song.toLowerCase())
{
case 'tutorial':
dialogue = ["Hey you're pretty cute.", 'Use the arrow keys to keep up \nwith me singing.'];
case 'bopeebo':
dialogue = [
'HEY!',
"You think you can just sing\nwith my daughter like that?",
"If you want to date her...",
"You're going to have to go \nthrough ME first!"
];
}
if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south') if (SONG.song.toLowerCase() == 'spookeez' || SONG.song.toLowerCase() == 'monster' || SONG.song.toLowerCase() == 'south')
{ {
halloweenLevel = true; halloweenLevel = true;
@ -147,15 +163,25 @@ class PlayState extends MusicBeatState
dad = new Character(100, 100, SONG.player2); dad = new Character(100, 100, SONG.player2);
add(dad); add(dad);
var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x, dad.getGraphicMidpoint().y);
switch (SONG.player2) switch (SONG.player2)
{ {
case 'gf': case 'gf':
dad.setPosition(gf.x, gf.y); dad.setPosition(gf.x, gf.y);
gf.visible = false; gf.visible = false;
if (isStoryMode)
{
camPos.x += 600;
tweenCamIn();
}
case "spooky": case "spooky":
dad.y += 200; dad.y += 200;
case "monster": case "monster":
dad.y += 100; dad.y += 100;
case 'dad':
camPos.x += 400;
} }
boyfriend = new Boyfriend(770, 450); boyfriend = new Boyfriend(770, 450);
@ -166,7 +192,6 @@ class PlayState extends MusicBeatState
doof.y = FlxG.height * 0.5; doof.y = FlxG.height * 0.5;
doof.scrollFactor.set(); doof.scrollFactor.set();
doof.finishThing = startCountdown; doof.finishThing = startCountdown;
add(doof);
Conductor.songPosition = -5000; Conductor.songPosition = -5000;
@ -187,7 +212,8 @@ class PlayState extends MusicBeatState
// 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);
camFollow.setPosition(camPos.x, camPos.y);
add(camFollow); add(camFollow);
FlxG.camera.follow(camFollow, LOCKON, 0.04); FlxG.camera.follow(camFollow, LOCKON, 0.04);
@ -220,11 +246,20 @@ class PlayState extends MusicBeatState
healthHeads.antialiasing = true; healthHeads.antialiasing = true;
add(healthHeads); add(healthHeads);
// healthBar.visible = healthHeads.visible = healthBarBG.visible = false;
if (isStoryMode)
{
add(doof);
}
else
startCountdown();
strumLineNotes.cameras = [camHUD]; strumLineNotes.cameras = [camHUD];
notes.cameras = [camHUD]; notes.cameras = [camHUD];
healthBar.cameras = [camHUD]; healthBar.cameras = [camHUD];
healthBarBG.cameras = [camHUD]; healthBarBG.cameras = [camHUD];
healthHeads.cameras = [camHUD]; healthHeads.cameras = [camHUD];
doof.cameras = [camHUD];
// if (SONG.song == 'South') // if (SONG.song == 'South')
// FlxG.camera.alpha = 0.7; // FlxG.camera.alpha = 0.7;
@ -239,6 +274,10 @@ class PlayState extends MusicBeatState
function startCountdown():Void function startCountdown():Void
{ {
generateStaticArrows(0);
generateStaticArrows(1);
talking = false;
startedCountdown = true; startedCountdown = true;
Conductor.songPosition = 0; Conductor.songPosition = 0;
Conductor.songPosition -= Conductor.crochet * 5; Conductor.songPosition -= Conductor.crochet * 5;
@ -323,9 +362,6 @@ class PlayState extends MusicBeatState
{ {
// FlxG.log.add(ChartParser.parse()); // FlxG.log.add(ChartParser.parse());
generateStaticArrows(0);
generateStaticArrows(1);
var songData = SONG; var songData = SONG;
Conductor.changeBPM(songData.bpm); Conductor.changeBPM(songData.bpm);
@ -483,6 +519,11 @@ class PlayState extends MusicBeatState
} }
} }
function tweenCamIn():Void
{
FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut});
}
override function openSubState(SubState:FlxSubState) override function openSubState(SubState:FlxSubState)
{ {
if (paused) if (paused)
@ -530,7 +571,7 @@ class PlayState extends MusicBeatState
// trace("SONG POS: " + Conductor.songPosition); // trace("SONG POS: " + Conductor.songPosition);
// FlxG.sound.music.pitch = 2; // FlxG.sound.music.pitch = 2;
if (FlxG.keys.justPressed.ENTER) if (FlxG.keys.justPressed.ENTER && startedCountdown)
{ {
persistentUpdate = false; persistentUpdate = false;
persistentDraw = true; persistentDraw = true;
@ -605,7 +646,7 @@ class PlayState extends MusicBeatState
if (SONG.song.toLowerCase() == 'tutorial') if (SONG.song.toLowerCase() == 'tutorial')
{ {
FlxTween.tween(FlxG.camera, {zoom: 1.3}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut}); tweenCamIn();
} }
} }

View file

@ -185,6 +185,7 @@ class StoryMenuState extends MusicBeatState
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase()); PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase());
new FlxTimer().start(1, function(tmr:FlxTimer) new FlxTimer().start(1, function(tmr:FlxTimer)
{ {
FlxG.sound.music.stop();
FlxG.switchState(new PlayState()); FlxG.switchState(new PlayState());
}); });
} }

View file

@ -32,7 +32,8 @@ class TitleState extends MusicBeatState
['Shoutouts to tom fulp', 'lmao'], ["Ludum dare", "extraordinaire"], ['Cyberzone', 'coming soon'], ['love to thriftman', 'swag'], ['Shoutouts to tom fulp', 'lmao'], ["Ludum dare", "extraordinaire"], ['Cyberzone', 'coming soon'], ['love to thriftman', 'swag'],
['ULTIMATE RHYTHM GAMING', 'probably'], ['DOPE ASS GAME', 'playstation magazine'], ['in loving memory of', 'henryeyes'], ['dancin', 'forever'], ['ULTIMATE RHYTHM GAMING', 'probably'], ['DOPE ASS GAME', 'playstation magazine'], ['in loving memory of', 'henryeyes'], ['dancin', 'forever'],
['Ritz dx', 'rest in peace'], ['rate five', 'do not blam'], ['rhythm gaming', 'ultimate'], ['game of the year', 'forever'], ['Ritz dx', 'rest in peace'], ['rate five', 'do not blam'], ['rhythm gaming', 'ultimate'], ['game of the year', 'forever'],
['you already know', 'we really out here'], ['rise and grind', 'love to luis'], ['like parappa', 'but cooler']]; ['you already know', 'we really out here'], ['rise and grind', 'love to luis'], ['like parappa', 'but cooler'],
['album of the year', 'chuckie finster']];
var curWacky:Array<String> = []; var curWacky:Array<String> = [];