MatrixUtil math fix
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<git name="flixel-addons" url="https://github.com/FNF-CNE-Devs/flixel-addons" />
|
||||
|
||||
<!-- Other Libraries -->
|
||||
<git name="hscript-improved" url="https://github.com/FNF-CNE-Devs/hscript-improved" ref="custom-classes" />
|
||||
<git name="hscript-improved" url="https://github.com/FNF-CNE-Devs/hscript-improved" />
|
||||
<git name="flxanimate" url="https://github.com/FNF-CNE-Devs/flxanimate" />
|
||||
<git name="hxdiscord_rpc" url="https://github.com/FNF-CNE-Devs/hxdiscord_rpc" />
|
||||
<lib name="hxvlc" />
|
||||
|
||||
@@ -86,6 +86,8 @@ class FunkinSprite extends FlxSkewedSprite implements IBeatReceiver implements I
|
||||
spr.skew.set(source.skew.x, source.skew.y);
|
||||
spr.transformMatrix = source.transformMatrix;
|
||||
spr.matrixExposed = source.matrixExposed;
|
||||
spr.zoomFactor = source.zoomFactor;
|
||||
spr.initialZoom = source.initialZoom;
|
||||
spr.animOffsets = source.animOffsets.copy();
|
||||
}
|
||||
return spr;
|
||||
|
||||
@@ -31,4 +31,8 @@ class NothingCamera extends FlxCamera {
|
||||
public override function drawTriangles(graphic:FlxGraphic, vertices:DrawData<Float>, indices:DrawData<Int>, uvtData:DrawData<Float>, ?colors:DrawData<Int>, ?position:FlxPoint, ?blend:BlendMode, repeat:Bool = false, smoothing:Bool = false, ?transform:ColorTransform, ?shader:FlxShader):Void {}
|
||||
|
||||
public override function update(elapsed:Float) {}
|
||||
|
||||
// override function set_zoom(Zoom:Float):Float return zoom = (Zoom == 0) ? FlxCamera.defaultZoom : Zoom;
|
||||
|
||||
public override function setScale(X:Float, Y:Float):Void {}
|
||||
}
|
||||
@@ -12,11 +12,13 @@ class MatrixUtil {
|
||||
if(camera == null) camera = sprite.camera;
|
||||
if(points is FlxBasePoint) points = [points];
|
||||
var nc = funkin.backend.system.NothingCamera.instance;
|
||||
nc.zoom = camera.zoom;
|
||||
nc.scroll.set(camera.scroll.x, camera.scroll.y);
|
||||
//nc.zoom = camera.zoom; // might not be needed
|
||||
nc.pixelPerfectRender = camera.pixelPerfectRender;
|
||||
@:privateAccess sprite.drawComplex(nc);
|
||||
|
||||
var isFunkinSprite = sprite is FunkinSprite;
|
||||
|
||||
var points:Array<FlxPoint> = cast points;
|
||||
@:privateAccess for(point in points) {
|
||||
var x = sprite._matrix.__transformX(point.x * _width, point.y * _height);
|
||||
@@ -25,7 +27,14 @@ class MatrixUtil {
|
||||
// reset to ingame coords
|
||||
x += camera.scroll.x;
|
||||
y += camera.scroll.y;
|
||||
|
||||
if(isFunkinSprite) {
|
||||
var sprite:FunkinSprite = cast sprite;
|
||||
|
||||
var ratio = 1 - FlxMath.lerp(1 / camera.zoom, 1, sprite.zoomFactor);
|
||||
x += camera.width / 2 * ratio;
|
||||
y += camera.height / 2 * ratio;
|
||||
}
|
||||
point.set(x, y);
|
||||
}
|
||||
return points;
|
||||
|
||||
Reference in New Issue
Block a user