private void modObject(com.brashmonkey.spriter.objects.SpriterAbstractObject @object ) { @object.setAngle(@object.getAngle() + this.angle); @object.setScaleX(@object.getScaleX() * this.scaleX); @object.setScaleY(@object.getScaleY() * this.scaleY); @object.setX(@object.getX() + this.x); @object.setY(@object.getY() + this.y); }
public static void reTranslateRelative(com.brashmonkey.spriter.objects.SpriterAbstractObject parent, float x, float y, com.brashmonkey.spriter.objects.SpriterAbstractObject target) { target.setAngle(target.getAngle() - parent.getAngle()); target.setScaleX(target.getScaleX() / parent.getScaleX()); target.setScaleY(target.getScaleY() / parent.getScaleY()); float xx = x - parent.getX(); float yy = y - parent.getY(); double angle = DegreeToRadian(parent.getAngle()); float cos = (float)System.Math.Cos(angle); float sin = (float)System.Math.Sin(angle); float newX = yy * sin + xx * cos; float newY = yy * cos - xx * sin; target.setX(newX / parent.getScaleX()); target.setY(newY / parent.getScaleY()); }
/// <summary>Rotates the given point around the given parent.</summary> /// <remarks>Rotates the given point around the given parent.</remarks> /// <param name="parent"></param> /// <param name="x"></param> /// <param name="y"></param> /// <param name="target">save new position in</param> public static void translateRelative(com.brashmonkey.spriter.objects.SpriterAbstractObject parent, float x, float y, com.brashmonkey.spriter.objects.SpriterAbstractObject target) { float px = x * (parent.getScaleX()); float py = y * (parent.getScaleY()); float s = (float)System.Math.Sin(DegreeToRadian(parent.getAngle())); float c = (float)System.Math.Cos(DegreeToRadian(parent.getAngle())); float xnew = (px * c) - (py * s); float ynew = (px * s) + (py * c); xnew += parent.getX(); ynew += parent.getY(); target.setX(xnew); target.setY(ynew); }
private void interpolateAbstractObject(com.brashmonkey.spriter.objects.SpriterAbstractObject target, com.brashmonkey.spriter.objects.SpriterAbstractObject obj1, com.brashmonkey.spriter.objects.SpriterAbstractObject obj2, float startTime, float endTime, float frame) { if (obj2 == null) { return; } target.setX(this.interpolate(obj1.getX(), obj2.getX(), startTime, endTime, frame) ); target.setY(this.interpolate(obj1.getY(), obj2.getY(), startTime, endTime, frame) ); target.setScaleX(this.interpolate(obj1.getScaleX(), obj2.getScaleX(), startTime, endTime, frame)); target.setScaleY(this.interpolate(obj1.getScaleY(), obj2.getScaleY(), startTime, endTime, frame)); target.setAngle(this.interpolateAngle(obj1.getAngle(), obj2.getAngle(), startTime , endTime, frame)); }