내가 libgdx 포럼에서이 요청하지만, 응답을하지 않았다 예상대로 회전 배우 번역되지. 내가 뭘 하려는지 플레이어가 placeTile 명령을 제출하기 전에 타일을 클릭하고 드래그하여 화면 주위로 이동하고 여러 번 회전 할 수 있도록하는 것입니다. DragAndDrop에 대한 이해에서 유스 케이스를 염두에두고 설계된 것 같지 않으므로 대신 dragListener 리스너를 각 게임 조각 (아래 코드)에 연결한다고 생각했습니다. 드래그를 시작하기 전에 최소 거리를 설정하는 방법을 알아낼 수 없다는 점을 제외하고는 드래그에 효과적입니다.하지만 내 주요 질문은 아닙니다. (통찰력은 인정 될지라도).Scene2d 나는 너희들이 좀 도와줬으면 그래서
어쨌든 30도 회전에서 드래그는 거의 정상적인 동작을합니다. 60도에서 마우스의 아주 작은 움직임은 매우 빠른 속도로 움직이는 배우를 보냅니다. 또 다른 30도, 타일 액터는 1-2 프레임의 화면을 벗어나 넓은 호를 움직입니다. 액터가 시계 방향으로 회전하면 움직임은 시계 방향입니다. 반 시계 방향과 동일한 패턴.
배우의 번역이 고려되고있는 것처럼 보입니다. 내 질문에, 미래의 번역에 영향을 미치는 회전없이 액터/그룹을 회전하는 것이 가능한가? 또는 터치/마우스 입력에 따라 액터를 드래그하는 더 좋은 방법이 있습니까? 나는 아래의 몇 가지 코드를 포함 : 내가 기본 뭔가를 속이고있어 상상,하지만 난 알아낼 수있는 :
multiplexer.addProcessor(new InputAdapter() {
@Override
public boolean scrolled(int amt) {
if (chosenTileActor == null)
return false;
else
chosenTileActor.rotate(amt * 30);
return true;
}
});
:
// during initial stage creation
tileActor.setOrigin(tileActor.getWidth()/2, tileActor.getHeight()/2);
tileActor.addListener(new DragListener() {
public void dragStart(InputEvent event, float x, float y,
int pointer) {
chosenTileActor = event.getTarget();
}
public void drag(InputEvent event, float x, float y, int pointer) {
Actor target = event.getTarget();
target.translate(x, y);
}
});
그리고 스크롤 마우스 휠을 통해 회전 처리하는 리스너
포인터가 있습니까? DragListener를 사용하여 올바른 방향으로 가고 있습니까?
읽어 주셔서 감사합니다. , 당신의 드래그 이벤트의 스테이지 좌표에 직접 배우의 위치를 설정하는 대신 번역의
완벽하게 작동했습니다. 감사합니다. –
'setTapSquareSize' 메소드를보십시오. 원하는 경우 0F로 설정하십시오. – Alexmelyon