Remember to commit KissExtendedSprite
This commit is contained in:
41
projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx
Normal file
41
projects/kiss-flixel/src/kiss_flixel/KissExtendedSprite.hx
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package kiss_flixel;
|
||||||
|
|
||||||
|
import flixel.FlxG;
|
||||||
|
import flixel.FlxSprite;
|
||||||
|
import flixel.math.FlxPoint;
|
||||||
|
import flixel.system.FlxAssets;
|
||||||
|
|
||||||
|
class KissExtendedSprite extends flixel.addons.display.FlxExtendedSprite {
|
||||||
|
public function new(X:Float = 0, Y:Float = 0, ?SimpleGraphic:FlxGraphicAsset)
|
||||||
|
{
|
||||||
|
super(X, Y, SimpleGraphic);
|
||||||
|
}
|
||||||
|
|
||||||
|
var dragStartPos:FlxPoint = null;
|
||||||
|
var mouseStartPos:FlxPoint = null;
|
||||||
|
|
||||||
|
public var connectedSprites:Array<KissExtendedSprite> = [];
|
||||||
|
var connectedSpritesStartPos:Array<FlxPoint> = [];
|
||||||
|
|
||||||
|
public override function startDrag() {
|
||||||
|
super.startDrag();
|
||||||
|
|
||||||
|
dragStartPos = new FlxPoint(x, y);
|
||||||
|
connectedSpritesStartPos = [for (s in connectedSprites) new FlxPoint(s.x, s.y)];
|
||||||
|
mouseStartPos = FlxG.mouse.getWorldPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
override function updateDrag() {
|
||||||
|
var mouseTotalMovement = FlxG.mouse.getWorldPosition().subtractPoint(mouseStartPos);
|
||||||
|
var nextPos = dragStartPos.copyTo().addPoint(mouseTotalMovement);
|
||||||
|
x = nextPos.x;
|
||||||
|
y = nextPos.y;
|
||||||
|
for (i in 0...connectedSprites.length) {
|
||||||
|
var sprite = connectedSprites[i];
|
||||||
|
var startPos = connectedSpritesStartPos[i];
|
||||||
|
var nextPos = startPos.copyTo().addPoint(mouseTotalMovement);
|
||||||
|
sprite.x = nextPos.x;
|
||||||
|
sprite.y = nextPos.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user