mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-23 08:07:54 -05:00
Merge pull request #587 from FunkinCrew/results-scrolling
Scrolling results text
This commit is contained in:
commit
7d946cf1d8
3 changed files with 43 additions and 7 deletions
2
assets
2
assets
|
@ -1 +1 @@
|
||||||
Subproject commit 11bcd1b79169df4f0aa46d72c867e960a287d28a
|
Subproject commit 7a0d92d3007de42c452b2ea97a917d8c8d114ee7
|
|
@ -219,9 +219,9 @@ class InitState extends FlxState
|
||||||
FlxG.switchState(() -> new funkin.play.ResultState(
|
FlxG.switchState(() -> new funkin.play.ResultState(
|
||||||
{
|
{
|
||||||
storyMode: false,
|
storyMode: false,
|
||||||
title: "CUM SONG",
|
title: "Cum Song Erect by Kawai Sprite",
|
||||||
songId: "cum",
|
songId: "cum",
|
||||||
difficultyId: "hard",
|
difficultyId: "nightmare",
|
||||||
isNewHighscore: true,
|
isNewHighscore: true,
|
||||||
scoreData:
|
scoreData:
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,8 +15,10 @@ import funkin.ui.freeplay.FreeplayScore;
|
||||||
import flixel.text.FlxText;
|
import flixel.text.FlxText;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
import flixel.tweens.FlxEase;
|
import flixel.tweens.FlxEase;
|
||||||
|
import funkin.graphics.FunkinCamera;
|
||||||
import funkin.ui.freeplay.FreeplayState;
|
import funkin.ui.freeplay.FreeplayState;
|
||||||
import flixel.tweens.FlxTween;
|
import flixel.tweens.FlxTween;
|
||||||
|
import flixel.addons.display.FlxBackdrop;
|
||||||
import funkin.audio.FunkinSound;
|
import funkin.audio.FunkinSound;
|
||||||
import flixel.util.FlxGradient;
|
import flixel.util.FlxGradient;
|
||||||
import flixel.util.FlxTimer;
|
import flixel.util.FlxTimer;
|
||||||
|
@ -59,6 +61,10 @@ class ResultState extends MusicBeatSubState
|
||||||
var gfGood:Null<FlxSprite> = null;
|
var gfGood:Null<FlxSprite> = null;
|
||||||
var bfShit:Null<FlxAtlasSprite> = null;
|
var bfShit:Null<FlxAtlasSprite> = null;
|
||||||
|
|
||||||
|
final cameraBG:FunkinCamera;
|
||||||
|
final cameraScroll:FunkinCamera;
|
||||||
|
final cameraEverything:FunkinCamera;
|
||||||
|
|
||||||
public function new(params:ResultsStateParams)
|
public function new(params:ResultsStateParams)
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
@ -67,6 +73,10 @@ class ResultState extends MusicBeatSubState
|
||||||
|
|
||||||
rank = Scoring.calculateRank(params.scoreData) ?? SHIT;
|
rank = Scoring.calculateRank(params.scoreData) ?? SHIT;
|
||||||
|
|
||||||
|
cameraBG = new FunkinCamera('resultsBG', 0, 0, FlxG.width, FlxG.height);
|
||||||
|
cameraScroll = new FunkinCamera('resultsScroll', 0, 0, FlxG.width, FlxG.height);
|
||||||
|
cameraEverything = new FunkinCamera('resultsEverything', 0, 0, FlxG.width, FlxG.height);
|
||||||
|
|
||||||
// We build a lot of this stuff in the constructor, then place it in create().
|
// We build a lot of this stuff in the constructor, then place it in create().
|
||||||
// This prevents having to do `null` checks everywhere.
|
// This prevents having to do `null` checks everywhere.
|
||||||
|
|
||||||
|
@ -101,17 +111,32 @@ class ResultState extends MusicBeatSubState
|
||||||
{
|
{
|
||||||
if (FlxG.sound.music != null) FlxG.sound.music.stop();
|
if (FlxG.sound.music != null) FlxG.sound.music.stop();
|
||||||
|
|
||||||
|
// We need multiple cameras so we can put one at an angle.
|
||||||
|
cameraScroll.angle = -3.8;
|
||||||
|
|
||||||
|
cameraBG.bgColor = FlxColor.MAGENTA;
|
||||||
|
cameraScroll.bgColor = FlxColor.TRANSPARENT;
|
||||||
|
cameraEverything.bgColor = FlxColor.TRANSPARENT;
|
||||||
|
|
||||||
|
FlxG.cameras.add(cameraBG, false);
|
||||||
|
FlxG.cameras.add(cameraScroll, false);
|
||||||
|
FlxG.cameras.add(cameraEverything, false);
|
||||||
|
|
||||||
|
FlxG.cameras.setDefaultDrawTarget(cameraEverything, true);
|
||||||
|
|
||||||
// Reset the camera zoom on the results screen.
|
// Reset the camera zoom on the results screen.
|
||||||
FlxG.camera.zoom = 1.0;
|
FlxG.camera.zoom = 1.0;
|
||||||
|
|
||||||
var bg:FlxSprite = FlxGradient.createGradientFlxSprite(FlxG.width, FlxG.height, [0xFFFECC5C, 0xFFFDC05C], 90);
|
var bg:FlxSprite = FlxGradient.createGradientFlxSprite(FlxG.width, FlxG.height, [0xFFFECC5C, 0xFFFDC05C], 90);
|
||||||
bg.scrollFactor.set();
|
bg.scrollFactor.set();
|
||||||
bg.zIndex = 10;
|
bg.zIndex = 10;
|
||||||
|
bg.cameras = [cameraBG];
|
||||||
add(bg);
|
add(bg);
|
||||||
|
|
||||||
bgFlash.scrollFactor.set();
|
bgFlash.scrollFactor.set();
|
||||||
bgFlash.visible = false;
|
bgFlash.visible = false;
|
||||||
bgFlash.zIndex = 20;
|
bgFlash.zIndex = 20;
|
||||||
|
bgFlash.cameras = [cameraBG];
|
||||||
add(bgFlash);
|
add(bgFlash);
|
||||||
|
|
||||||
// The sound system which falls into place behind the score text. Plays every time!
|
// The sound system which falls into place behind the score text. Plays every time!
|
||||||
|
@ -455,16 +480,27 @@ class ResultState extends MusicBeatSubState
|
||||||
|
|
||||||
function displayRankText():Void
|
function displayRankText():Void
|
||||||
{
|
{
|
||||||
var rankTextVert:FunkinSprite = FunkinSprite.create(FlxG.width - 64, 100, rank.getVerTextAsset());
|
var rankTextVert:FlxBackdrop = new FlxBackdrop(Paths.image(rank.getVerTextAsset()), Y, 0, 30);
|
||||||
rankTextVert.zIndex = 2000;
|
rankTextVert.x = FlxG.width - 64;
|
||||||
|
rankTextVert.y = 100;
|
||||||
|
rankTextVert.zIndex = 990;
|
||||||
add(rankTextVert);
|
add(rankTextVert);
|
||||||
|
|
||||||
|
// Scrolling.
|
||||||
|
rankTextVert.velocity.y = -50;
|
||||||
|
|
||||||
for (i in 0...10)
|
for (i in 0...10)
|
||||||
{
|
{
|
||||||
var rankTextBack:FunkinSprite = FunkinSprite.create(FlxG.width / 2 - 80, 50, rank.getHorTextAsset());
|
var rankTextBack:FlxBackdrop = new FlxBackdrop(Paths.image(rank.getHorTextAsset()), X, 10, 0);
|
||||||
rankTextBack.y += (rankTextBack.height * i / 2) + 10;
|
rankTextBack.x = FlxG.width / 2 - 320;
|
||||||
|
rankTextBack.y = 50 + (150 * i / 2) + 10;
|
||||||
|
// rankTextBack.angle = -3.8;
|
||||||
rankTextBack.zIndex = 100;
|
rankTextBack.zIndex = 100;
|
||||||
|
rankTextBack.cameras = [cameraScroll];
|
||||||
add(rankTextBack);
|
add(rankTextBack);
|
||||||
|
|
||||||
|
// Scrolling.
|
||||||
|
rankTextBack.velocity.x = (i % 2 == 0) ? -10.0 : 10.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
|
|
Loading…
Reference in a new issue