resizablable charter
This commit is contained in:
@@ -550,7 +550,7 @@ class Charter extends UIState {
|
||||
Framerate.memoryCounter.alpha = 0.4;
|
||||
Framerate.codenameBuildField.alpha = 0.4;
|
||||
}
|
||||
updateDisplaySprites();
|
||||
UIState.setResolutionAware();
|
||||
|
||||
// ! IF YOU EVER WANNA VIEW IN THE FUTURE, JUST USE A FLXSPRITE :D -lunar
|
||||
/*var dataDisplay:FlxSprite = new FlxSprite().loadGraphic(waveformHandler.waveDatas.get("Voices.ogg"));
|
||||
@@ -1355,7 +1355,10 @@ class Charter extends UIState {
|
||||
function updateDisplaySprites() {
|
||||
gridBackdrops.strumlinesAmount = strumLines.members.length;
|
||||
|
||||
charterBG.scale.set(1 / charterCamera.zoom, 1 / charterCamera.zoom);
|
||||
charterBG.scale.set(
|
||||
(1 / charterCamera.zoom) * (FlxG.width/charterBG.width),
|
||||
(1 / charterCamera.zoom) * (FlxG.height/charterBG.height)
|
||||
);
|
||||
|
||||
strumlineInfoBG.scale.set(FlxG.width / charterCamera.zoom, 1);
|
||||
strumlineInfoBG.updateHitbox();
|
||||
@@ -1369,6 +1372,24 @@ class Charter extends UIState {
|
||||
strumlineLockButton.y = strumlineInfoBG.y;
|
||||
}
|
||||
|
||||
public override function onResize(width:Int, height:Int) {
|
||||
super.onResize(width, height);
|
||||
|
||||
if (width < FlxG.initialWidth || height < FlxG.initialHeight) {
|
||||
width = FlxG.initialWidth; height = FlxG.initialHeight;
|
||||
}
|
||||
|
||||
scrollBar.x = width - 20;
|
||||
scrollBar.scale.y = Std.int(height - scrollBar.y);
|
||||
scrollBar.updateHitbox();
|
||||
|
||||
songPosInfo.x = width - 30 - 400;
|
||||
playBackSlider.x = width - 160 - 26 - 20;
|
||||
|
||||
updateDisplaySprites();
|
||||
charterBG.screenCenter();
|
||||
}
|
||||
|
||||
var zoom(default, set):Float = 0;
|
||||
var __camZoom(default, set):Float = 1;
|
||||
function set_zoom(val:Float) {
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package funkin.editors.ui;
|
||||
|
||||
import flixel.system.scaleModes.StageSizeScaleMode;
|
||||
|
||||
class UIScaleMode extends StageSizeScaleMode {
|
||||
override public function onMeasure(Width:Int, Height:Int):Void {
|
||||
if (Width < FlxG.initialWidth || Height < FlxG.initialHeight) {
|
||||
@:privateAccess {
|
||||
FlxG.width = FlxG.initialWidth;
|
||||
FlxG.height = FlxG.initialHeight;
|
||||
}
|
||||
|
||||
updateGameSize(Width, Height);
|
||||
updateDeviceSize(Width, Height);
|
||||
updateScaleOffset();
|
||||
updateGamePosition();
|
||||
} else {
|
||||
super.onMeasure(Width, Height);
|
||||
|
||||
for (camera in FlxG.cameras.list) {
|
||||
camera.width = Width;
|
||||
camera.height = Height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override function updateGameSize(Width:Int, Height:Int):Void
|
||||
{
|
||||
var ratio:Float = FlxG.width / FlxG.height;
|
||||
var realRatio:Float = Width / Height;
|
||||
|
||||
var scaleY:Bool = realRatio < ratio;
|
||||
|
||||
if (scaleY)
|
||||
{
|
||||
gameSize.x = Width;
|
||||
gameSize.y = Math.floor(gameSize.x / ratio);
|
||||
}
|
||||
else
|
||||
{
|
||||
gameSize.y = Height;
|
||||
gameSize.x = Math.floor(gameSize.y * ratio);
|
||||
}
|
||||
|
||||
@:privateAccess {
|
||||
for(camera in FlxG.cameras.list) {
|
||||
camera.width = FlxG.initialWidth;
|
||||
camera.height = FlxG.initialHeight;
|
||||
}
|
||||
|
||||
FlxG.width = FlxG.initialWidth;
|
||||
FlxG.height = FlxG.initialHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package funkin.editors.ui;
|
||||
|
||||
import openfl.Lib;
|
||||
import funkin.editors.ui.notifications.UIBaseNotification;
|
||||
import flixel.math.FlxPoint;
|
||||
import flixel.math.FlxRect;
|
||||
@@ -9,6 +10,7 @@ import funkin.editors.ui.UIContextMenu.UIContextMenuCallback;
|
||||
import funkin.editors.ui.UIContextMenu.UIContextMenuOption;
|
||||
import lime.ui.KeyCode;
|
||||
import lime.ui.KeyModifier;
|
||||
import flixel.system.scaleModes.StageSizeScaleMode;
|
||||
import openfl.ui.Mouse;
|
||||
import openfl.ui.MouseCursor;
|
||||
|
||||
@@ -117,6 +119,16 @@ class UIState extends MusicBeatState {
|
||||
}
|
||||
|
||||
public override function destroy() {
|
||||
if (resolutionAware) {
|
||||
resolutionAware = false;
|
||||
|
||||
for (camera in FlxG.cameras.list) {
|
||||
camera.width = FlxG.initialWidth;
|
||||
camera.height = FlxG.initialHeight;
|
||||
}
|
||||
FlxG.scaleMode = Main.scaleMode;
|
||||
}
|
||||
|
||||
super.destroy();
|
||||
__mousePos.put();
|
||||
|
||||
@@ -164,4 +176,20 @@ class UIState extends MusicBeatState {
|
||||
//notification.appearAnimation();
|
||||
//FlxTween.tween(notification, {x: __mousePos.x, y: __mousePos.y, alpha: 1}, .3, {ease: FlxEase.circInOut});
|
||||
}
|
||||
|
||||
public static var resolutionAware:Bool = false;
|
||||
public static var uiScaleMode:UIScaleMode = new UIScaleMode();
|
||||
|
||||
public static function setResolutionAware() {
|
||||
resolutionAware = true;
|
||||
FlxG.scaleMode = uiScaleMode;
|
||||
}
|
||||
|
||||
public override function onResize(width:Int, height:Int) {
|
||||
super.onResize(width, height);
|
||||
|
||||
if (!resolutionAware) return;
|
||||
|
||||
trace(width, height);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user