fix advances

This commit is contained in:
SrtHero278
2024-10-12 10:28:10 -07:00
parent 12ca8161ae
commit 25b5afedda
+11 -15
View File
@@ -18,7 +18,8 @@ class AlphabetLetterData {
public var anim:String; // should this be FlxAnimation? public var anim:String; // should this be FlxAnimation?
public var x:Float; public var x:Float;
public var y:Float; public var y:Float;
public var advance:Null<Float>; public var advance:Float;
public var advanceEmpty:Bool;
// Precalculated values for angle // Precalculated values for angle
public var sin:Float; public var sin:Float;
public var cos:Float; public var cos:Float;
@@ -256,16 +257,14 @@ class NewAlphabet extends FlxSprite {
} }
function getAdvance(letter:String, anim:FlxAnimation, ?data:AlphabetLetterData):Float { function getAdvance(letter:String, anim:FlxAnimation, ?data:AlphabetLetterData):Float {
// we should calculate this in checkNode
if (anim == null) if (anim == null)
return defaultAdvance; return defaultAdvance;
// t
if(data != null) { if (data.advanceEmpty && !data.isDefault) {
if (data.advance != null) data.advanceEmpty = false;
return data.advance; data.advance = frames.frames[anim.frames[0]].sourceSize.x;
return data.advance = frames.frames[anim.frames[0]].sourceSize.x;
} }
return defaultAdvance; return (data.isDefault) ? frames.frames[anim.frames[0]].sourceSize.x : data.advance;
} }
function getData(char:String):AlphabetLetterData { function getData(char:String):AlphabetLetterData {
@@ -332,7 +331,8 @@ class NewAlphabet extends FlxSprite {
x: 0.0, x: 0.0,
y: 0.0, y: 0.0,
advance: defaultAdvance, advance: 0.0,
advanceEmpty: true,
scaleX: Std.parseFloat(node.get("scaleX")).getDefault(1.0), scaleX: Std.parseFloat(node.get("scaleX")).getDefault(1.0),
scaleY: Std.parseFloat(node.get("scaleY")).getDefault(1.0), scaleY: Std.parseFloat(node.get("scaleY")).getDefault(1.0),
@@ -352,12 +352,7 @@ class NewAlphabet extends FlxSprite {
var xOff:Float = -Std.parseFloat(node.get("x")).getDefault(0.0); var xOff:Float = -Std.parseFloat(node.get("x")).getDefault(0.0);
var yOff:Float = Std.parseFloat(node.get("y")).getDefault(0.0); var yOff:Float = Std.parseFloat(node.get("y")).getDefault(0.0);
var advance:Null<Float> = (node.exists("advance")) ? { var advance:Float = Std.parseFloat(node.get("advance"));
var _:Null<Float> = Std.parseFloat(node.get("advance"));
if(CoolUtil.isNaN(_))
_ = null;
_;
} : null;
letterData.set(char, { letterData.set(char, {
isDefault: false, isDefault: false,
@@ -366,6 +361,7 @@ class NewAlphabet extends FlxSprite {
x: xOff, x: xOff,
y: yOff, y: yOff,
advance: advance, advance: advance,
advanceEmpty: Math.isNaN(advance),
scaleX: Std.parseFloat(node.get("scaleX")).getDefault(1.0), scaleX: Std.parseFloat(node.get("scaleX")).getDefault(1.0),
scaleY: Std.parseFloat(node.get("scaleY")).getDefault(1.0), scaleY: Std.parseFloat(node.get("scaleY")).getDefault(1.0),