【发布时间】:2014-08-07 03:53:36
【问题描述】:
我已经实现了拖放,但问题是在用户释放拖动之后。被拖拽的演员从屏幕上消失了。如果 Actor 掉落到不正确的位置,如何将其移动到新位置或返回其位置?
感谢您的回答。
问候,
阿尔法 '
final DragAndDrop dragAndDrop = new DragAndDrop();
final Box sourceBox = boxList.get(0);
final Box targetBox = boxHolderList.get(0);
Source source = new Source(sourceBox) {
@Override
public void dragStop(InputEvent event, float x, float y,
int pointer, Payload payload, Target target) {
Box sourceBox = (Box) payload.getDragActor();
if (target == null){
sourceBox.setPosition(sourceBox.getX(), sourceBox.getY());
}
else{
Box targetBox = (Box) target.getActor();
sourceBox.setPosition(targetBox.getX(), targetBox.getY());
}
}
@Override
public Payload dragStart(InputEvent event, float x, float y, int pointer) {
dragAndDrop.setDragActorPosition(-1*sourceBox.getWidth()/2, 1*sourceBox.getHeight()/2);
Payload payload = new Payload();
payload.setDragActor(sourceBox);
Label validLabel = new Label("Valid!", skin);
validLabel.setColor(0, 1, 0, 1);
payload.setValidDragActor(validLabel);
Label invalidLabel = new Label("Invalid!", skin);
invalidLabel.setColor(1, 0, 0, 1);
payload.setInvalidDragActor(invalidLabel);
return payload;
}
};
【问题讨论】:
标签: drag-and-drop libgdx