mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 09:46:02 +08:00
[ts][phaser] Improved physics2 example transforming coordinates between spaces
This commit is contained in:
parent
d3ceb219f8
commit
9f40b7f56b
@ -35,14 +35,24 @@
|
||||
|
||||
let lastX, lastY;
|
||||
gameObject.on('dragstart', (pointer, dragX, dragY) => {
|
||||
lastX = gameObject.input.dragStartX;
|
||||
lastY = gameObject.input.dragStartY;
|
||||
lastX = dragX;
|
||||
lastY = dragY;
|
||||
})
|
||||
|
||||
gameObject.on('drag', (pointer, dragX, dragY) => {
|
||||
gameObject.x += (dragX - lastX);
|
||||
gameObject.y += (dragY - lastY);
|
||||
gameObject.skeleton.physicsTranslate((dragX - lastX) / gameObject.scale, (dragY - lastY) / gameObject.scale)
|
||||
// moving gameObject in its space
|
||||
gameObject.x += dragX - lastX;
|
||||
gameObject.y += dragY - lastY;
|
||||
|
||||
// converting drag movement to skeleton space
|
||||
const pointBefore = { x: lastX, y: lastY };
|
||||
const pointAfter = { x: dragX, y: dragY };
|
||||
gameObject.phaserWorldCoordinatesToSkeleton(pointBefore);
|
||||
gameObject.phaserWorldCoordinatesToSkeleton(pointAfter);
|
||||
|
||||
// transfer drag effect on physics contraints using physicsTranslate (we won't move the skeleton)
|
||||
gameObject.skeleton.physicsTranslate(pointAfter.x - pointBefore.x, pointAfter.y - pointBefore.y);
|
||||
|
||||
lastX = dragX;
|
||||
lastY = dragY;
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user