여러 번 터치하는 것과 관련된 몇 가지 문제가 있습니다.LibGdx 다중 터치 핸들링 리스너
액터 (playLight, 코드)가있는 스테이지 (mainStage), HUD 스테이지 (HUD.stage) 및 InputMultiplexer가 두 스테이지를 처리합니다.
inputMultiplexer= new InputMultiplexer();
inputMultiplexer.addProcessor(HUD.stage);
inputMultiplexer.addProcessor(mainStage);
나는 나의 배우가
에 그 자리에서를 제외하고는 한 손가락으로 내 개체를 이동할 수 있고, 다른 하나는 스 와이프 할 수 아래로 또는 어디서든 내 무대에서 더블 탭, 그래서 두 손가락으로 입력을 처리하는 경우 내 메인 무대 모두에 대한 수신기를 사용하고: ...
mainStage.addListener(new ActorGestureListener(5,0.3f,0.4f,2f){
@Override
public void pan(InputEvent event, float x, float y, float deltaX, float deltaY) {
if(event.getPointer() == LightHandler.playerLight.pointerUsed){
listeningToPointer = -1;
return;
}
listeningToPointer= event.getPointer();
if(deltaY>0){
mainCharacter.up();
}
else{
mainCharacter.down();
}
}
@Override
public void tap(InputEvent event, float x, float y, int count, int button) {
if(count==2){
mainCharacter.clicked();
}
}
});
.. 그리고이 (주무대)의 객체 스테이지
playerLight.addListener(new DragListener(){
@Override
public void drag(InputEvent event, float x, float y, int pointer) {
pointerUsed = pointer; // will be reset to -1 at the end of update()
setPosition(getX()+ Gdx.input.getX(pointerUsed)-getWidth()/2f,getY()+Gdx.input.getY(pointerUsed)-getHeight()/2f);
}
@Override
public void dragStart(InputEvent event, float x, float y, int pointer) {
pointerUsed = pointer; // will be reset to -1 at the end of update()
isDragging = true;
}
@Override
public void dragStop(InputEvent event, float x, float y, int pointer) {
isDragging = false;
}
});
mainStage.addActor(playerLight);
둘 다 청취자가 내가 원하는대로 separetly 작동합니다.
문제는 한 손가락으로 스테이지 (playerLight)에서 개체를 움직여서 다른 손가락으로 위로 올려보십시오. Gdx가 두 번째 입력을 인식하지 못하거나 Gdx가 다른 입력을 인식하지 못하는 것 같습니다. 신분증.
내가 시도 :
- 는
- 이 simulationously 때 두 청취자를 트리거로 이어질 주무대 리스너의 ID, 요청하지 않으려면 (이 경우에는 HUD 단계)을 또 다른 무대에서 객체를 넣으려면 내 개체를 (예상대로) 위로 이동합니다.
내 앱이 조금 개선되었습니다. 감사합니다. 그러나 멀티 터치는 여전히 작동하지 않습니다. 배우를 움직이고 다른 손가락으로 다른 지점에서 무대를 팬하면 아무 일도 일어나지 않습니다. 내 배우를 풀어 주면 다시 작동합니다. –