作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
for (byte i = 0; i < 20; i++) {maxDistance = 10 * Gdx.graphics.getDeltaTime();
if (Gdx.input.isTouched(i) && Gdx.input.getY()<= 400) {
player1TouchPosition.set(Gdx.input.getX(i), Gdx.input.getY(i), 0);
camera.unproject(player1TouchPosition);
}
player1Tmp.set(player1TouchPosition.x, player1TouchPosition.y).sub(player1Rectangle.x, player1Rectangle.y);
if (player1Tmp.len() <= maxDistance) {
player1Rectangle.x = player1TouchPosition.x;
player1Rectangle.y = player1TouchPosition.y;
} else {
player1Tmp.nor().scl(maxDistance);
player1Rectangle.x += player1Tmp.x;
player1Rectangle.y += player1Tmp.y;
}
if (Gdx.input.isTouched(i) && Gdx.input.getY() >= 401) {
player2TouchPosition.set(Gdx.input.getX(i), Gdx.input.getY(i), 0);
camera.unproject(player2TouchPosition);
}
player2Tmp.set(player2TouchPosition.x, player2TouchPosition.y).sub(player2Rectangle.x, player2Rectangle.y);
if (player2Tmp.len() <= maxDistance) {
player2Rectangle.x = player2TouchPosition.x;
player2Rectangle.y = player2TouchPosition.y;
} else {
player2Tmp.nor().scl(maxDistance);
player2Rectangle.x += player2Tmp.x;
player2Rectangle.y += player2Tmp.y;
}
}
您好,我正在使用这段代码移动到触摸位置。但我需要多点触控。它不工作。当我添加 player2 时,它不起作用。我不明白多点触控是怎么回事。我该如何解决?
最佳答案
为什么不使用 InputProcessor?来自接口(interface)的一种方法的一个例子
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
if(pointer =< 2){
touches.get(pointer).touchX = screenX;
touches.get(pointer).touchY = screenY;
touches.get(pointer).touched = true;
}
return true;
}
在上面的示例中,您最多可以使用 2 次触摸。实际上 1 个指针就是 1 个触摸。
screenX
和screenY
是触摸位置。请注意,与正交相机相比,您必须缩放此位置。指针是事件的指针。
如果您创建了 InputProcessor
,您可以使用它启动它
Gdx.input.setInputProcessor(/*Your class*/);
编辑:
来自评论的例子:
for (Button button : /*ArrayList*/{
if (positionX >= button1.getX() && positionX <= button1.getX() + button1.getWidth() &&
positionY >= button1.getY() && positionY <= button1.getY() + button1.getHeight()){
//Update the position from the specific button
}
您可以在接口(interface) touchDragged()
的方法中使用此代码。
关于Java LibGDX 多点触控问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39065633/
我是一名优秀的程序员,十分优秀!