[haxe] 4.3 porting WIP.

This commit is contained in:
Davide Tantillo 2025-06-12 08:57:20 +02:00
parent cb7872274d
commit 651a897724
2 changed files with 6 additions and 16 deletions

View File

@ -173,8 +173,8 @@ class PhysicsConstraint extends Constraint<PhysicsConstraint, PhysicsConstraintD
yLag = yOffset - ys; yLag = yOffset - ys;
} }
z = Math.max(0, 1 - a / t); z = Math.max(0, 1 - a / t);
if (x) bone.worldX += xOffset * mix * this.data.x; if (x) bone.worldX += (xOffset - xLag * z) * mix * data.x;
if (y) bone.worldY += yOffset * mix * this.data.y; if (y) bone.worldY += (yOffset - yLag * z) * mix * data.y;
} }
if (rotateOrShearX || scaleX) { if (rotateOrShearX || scaleX) {
var ca = Math.atan2(bone.c, bone.a), c = 0., s = 0., mr = 0., dx = cx - bone.worldX, dy = cy - bone.worldY; var ca = Math.atan2(bone.c, bone.a), c = 0., s = 0., mr = 0., dx = cx - bone.worldX, dy = cy - bone.worldY;
@ -205,7 +205,6 @@ class PhysicsConstraint extends Constraint<PhysicsConstraint, PhysicsConstraintD
var r = l * bone.worldScaleX - scaleLag * Math.max(0, 1 - aa / t); var r = l * bone.worldScaleX - scaleLag * Math.max(0, 1 - aa / t);
if (r > 0) scaleOffset += (dx * c + dy * s) * i / r; if (r > 0) scaleOffset += (dx * c + dy * s) * i / r;
} }
a = remaining;
if (a >= t) { if (a >= t) {
if (d == -1) { if (d == -1) {
d = Math.pow(p.damping, 60 * t); d = Math.pow(p.damping, 60 * t);
@ -213,7 +212,7 @@ class PhysicsConstraint extends Constraint<PhysicsConstraint, PhysicsConstraintD
e = p.strength; e = p.strength;
} }
var g = Bone.yDown ? -p.gravity : p.gravity; var g = Bone.yDown ? -p.gravity : p.gravity;
var rs = rotateOffset, ss = scaleLag, h = l / f, var rs = rotateOffset, ss = scaleOffset, h = l / f,
ax = p.wind * skeleton.windX + g * skeleton.gravityX, ax = p.wind * skeleton.windX + g * skeleton.gravityX,
ay = p.wind * skeleton.windY + g * skeleton.gravityY; ay = p.wind * skeleton.windY + g * skeleton.gravityY;
while (true) { while (true) {
@ -250,12 +249,9 @@ class PhysicsConstraint extends Constraint<PhysicsConstraint, PhysicsConstraintD
} }
if (rotateOrShearX) { if (rotateOrShearX) {
var o:Float = (rotateOffset - rotateLag * z) * mix, var o = (rotateOffset - rotateLag * z) * mix, s = 0., c = 0., a = 0.;
s:Float = 0,
c:Float = 0,
a:Float = 0;
if (data.shearX > 0) { if (data.shearX > 0) {
var r:Float = 0; var r = 0.;
if (data.rotate > 0) { if (data.rotate > 0) {
r = o * data.rotate; r = o * data.rotate;
s = Math.sin(r); s = Math.sin(r);
@ -283,7 +279,7 @@ class PhysicsConstraint extends Constraint<PhysicsConstraint, PhysicsConstraintD
} }
} }
if (scaleX) { if (scaleX) {
var s:Float = 1 + (scaleOffset - scaleLag * z) * mix * this.data.scaleX; var s = 1 + (scaleOffset - scaleLag * z) * mix * data.scaleX;
bone.a *= s; bone.a *= s;
bone.c *= s; bone.c *= s;
} }

View File

@ -44,12 +44,6 @@ class PhysicsConstraintData extends ConstraintData<PhysicsConstraint, PhysicsCon
public var shearX = 0.; public var shearX = 0.;
public var limit = 0.; public var limit = 0.;
public var step = 0.; public var step = 0.;
public var inertia = 0.;
public var strength = 0.;
public var damping = 0.;
public var massInverse = 0.;
public var wind = 0.;
public var gravity = 0.;
/** A percentage (0-1) that controls the mix between the constrained and unconstrained poses. */ /** A percentage (0-1) that controls the mix between the constrained and unconstrained poses. */
public var mix = 0.; public var mix = 0.;
public var inertiaGlobal = false; public var inertiaGlobal = false;