downscroll if it was good

This commit is contained in:
Yoshman29
2023-04-27 18:46:29 +02:00
parent 0033a8fae4
commit 90bc513adf
7 changed files with 56 additions and 29 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ import funkin.menus.TitleState;
import flixel.FlxGame;
import flixel.FlxState;
import openfl.Assets;
import flash.Lib;
import openfl.Lib;
import openfl.display.FPS;
import openfl.display.Sprite;
import openfl.events.Event;
+1 -1
View File
@@ -16,7 +16,7 @@ import flixel.util.FlxColor;
import flixel.util.FlxAxes;
import flixel.graphics.frames.FlxFrame;
import flixel.graphics.frames.FlxFramesCollection;
import flash.geom.ColorTransform;
import openfl.geom.ColorTransform;
import funkin.backend.chart.Chart;
import haxe.CallStack;
+1 -1
View File
@@ -16,7 +16,7 @@ import haxe.Exception;
import haxe.io.Path;
import funkin.backend.system.Conductor;
import flash.geom.ColorTransform;
import openfl.geom.ColorTransform;
import funkin.backend.scripting.DummyScript;
import funkin.backend.scripting.Script;
+26 -15
View File
@@ -3,14 +3,14 @@ package funkin.game;
import lime.app.Application;
import flixel.graphics.tile.FlxGraphicsShader;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.geom.ColorTransform;
import flash.geom.Point;
import flash.geom.Rectangle;
import openfl.display.Bitmap;
import openfl.display.BitmapData;
import openfl.display.DisplayObject;
import openfl.display.Graphics;
import openfl.display.Sprite;
import openfl.geom.ColorTransform;
import openfl.geom.Point;
import openfl.geom.Rectangle;
import flixel.graphics.FlxGraphic;
import flixel.graphics.frames.FlxFrame;
import flixel.graphics.tile.FlxDrawBaseItem;
@@ -31,17 +31,28 @@ class HudCamera extends FlxCamera {
public var downscroll:Bool = false;
public override function update(elapsed:Float) {
super.update(elapsed);
flipY = downscroll;
// flipY = downscroll;
}
public override function drawPixels(?frame:FlxFrame, ?pixels:BitmapData, matrix:FlxMatrix, ?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false,
?shader:FlxShader):Void
{
// public override function drawPixels(?frame:FlxFrame, ?pixels:BitmapData, matrix:FlxMatrix, ?transform:ColorTransform, ?blend:BlendMode, ?smoothing:Bool = false,
// ?shader:FlxShader):Void
// {
// if (downscroll) {
// matrix.scale(1, -1);
// matrix.translate(0, height);
// }
// super.drawPixels(frame, pixels, matrix, transform, blend, smoothing, shader);
// }
public override function alterScreenPosition(spr:FlxObject, pos:FlxPoint) {
if (downscroll) {
matrix.scale(1, -1);
matrix.translate(0, height);
var oldPoint = FlxPoint.get(pos.x, pos.y);
pos.set(pos.x, height - pos.y - spr.height);
oldPoint.put();
}
super.drawPixels(frame, pixels, matrix, transform, blend, smoothing, shader);
return pos;
}
}
+22 -6
View File
@@ -192,10 +192,18 @@ class Note extends FlxSprite
public var strumRelativePos:Bool = true;
override function drawComplex(camera:FlxCamera) {
flipY = (isSustainNote && flipSustain) && ((camera is HudCamera ? cast(camera, HudCamera).downscroll : false) != (__strum != null && __strum.getScrollSpeed(this) < 0));
super.drawComplex(camera);
var downscrollCam = (camera is HudCamera ? cast(camera, HudCamera).downscroll : false);
flipY = (isSustainNote && flipSustain) && (downscrollCam != (__strum != null && __strum.getScrollSpeed(this) < 0));
if (downscrollCam) {
frameOffset.y += __notePosFrameOffset.y * 2;
super.drawComplex(camera);
frameOffset.y -= __notePosFrameOffset.y * 2;
} else
super.drawComplex(camera);
}
var __notePosFrameOffset:FlxPoint = FlxPoint.get();
override function draw() {
@:privateAccess var oldDefaultCameras = FlxCamera._defaultCameras;
@:privateAccess if (__strumCameras != null) FlxCamera._defaultCameras = __strumCameras;
@@ -208,8 +216,10 @@ class Note extends FlxSprite
setPosition(__strum.x, __strum.y);
frameOffset.x -= pos.x / scale.x;
frameOffset.y -= pos.y / scale.y;
__notePosFrameOffset.set(pos.x / scale.x, pos.y / scale.y);
frameOffset.x -= __notePosFrameOffset.x;
frameOffset.y -= __notePosFrameOffset.y;
this.frameOffsetAngle = __noteAngle;
@@ -217,12 +227,13 @@ class Note extends FlxSprite
this.frameOffsetAngle = 0;
frameOffset.x += pos.x / scale.x;
frameOffset.y += pos.y / scale.y;
frameOffset.x += __notePosFrameOffset.x;
frameOffset.y += __notePosFrameOffset.y;
setPosition(pos.x, pos.y);
pos.put();
} else {
__notePosFrameOffset.set(0, 0);
super.draw();
}
@@ -274,4 +285,9 @@ class Note extends FlxSprite
return rect;
}
public override function destroy() {
super.destroy();
__notePosFrameOffset.put();
}
}
+1 -1
View File
@@ -3,7 +3,7 @@ package funkin.menus;
import funkin.backend.chart.Chart;
import funkin.backend.chart.ChartData;
import haxe.io.Path;
import flash.text.TextField;
import openfl.text.TextField;
import flixel.FlxState;
import flixel.addons.display.FlxGridOverlay;
import flixel.text.FlxText;
+4 -4
View File
@@ -10,12 +10,12 @@ import lime.utils.ArrayBuffer;
import lime.utils.UInt8Array;
import lime.utils.UInt16Array;
#if flash
import flash.net.URLRequest;
import flash.system.Capabilities;
import flash.Lib;
import openfl.net.URLRequest;
import openfl.system.Capabilities;
import openfl.Lib;
#end
#if air
import flash.desktop.NativeApplication;
import openfl.desktop.NativeApplication;
#end
#if ((js && html5) || electron)
import js.html.Element;