我目前正在使用LibGdx开发一款Android游戏。我试图让多点触控功能正常工作,因为游戏要求玩家有一个拇指控制角色而另一个点击按钮。
代码:
for (int i = 0; i < 2; i++) {
if (Gdx.input.isTouched(i)) {
final int iX = Gdx.input.getX(i);
if (iX > screenwidth - screenwidth / 14) {
buttontouch = true;
} else {
buttontouch = false;
}
if (iX <= screenwidth - screenwidth / 14) {
playertouch = true;
}else{
playertouch = false;
}
}
}
if (playertouch){
etc...
}
if(buttontouch){
etc...
}
for (int i = 0; i < 2; i++) {
if (Gdx.input.isTouched(i)) {
final int iX = Gdx.input.getX(i);
if (iX > screenwidth - screenwidth / 14) {
buttontouch = true;
} else {
buttontouch = false;
}
if (iX <= screenwidth - screenwidth / 14) {
playertouch = true;
}else{
playertouch = false;
}
}
}
if (playertouch){
etc...
}
if(buttontouch){
etc...
}
可以移动播放器并按下按钮,但不能同时按下:( ...这就是我需要的。
任何帮助将不胜感激!提前谢谢。
答案 0 :(得分:2)
应该在for
圈内调用移动角色的逻辑。你应该每圈迭代移动你的角色(如果点击了按钮)就像这样:
for (int i = 0; i < 2; i++) {
if (Gdx.input.isTouched(i)) {
final int iX = Gdx.input.getX(i);
if (iX > screenwidth - screenwidth / 14) {
buttontouch = true;
} else {
buttontouch = false;
}
if (iX <= screenwidth - screenwidth / 14) {
playertouch = true;
}else{
playertouch = false;
}
}
//Logic here!
if (playertouch){
etc...
}
if(buttontouch){
etc...
}
}
答案 1 :(得分:1)
好的,我好像找到了答案。 加入
if (Gdx.input.isTouched(i)) {
如果,则在每个布尔值下面
for (int i = 0; i < 2; i++) {
if (Gdx.input.isTouched(i)){
final int iX = Gdx.input.getX(i);
if (iX > screenwidth - screenwidth / 14) {
buttontouch = true;
} else {
buttontouch = false;
}
if (iX <= screenwidth - screenwidth / 14) {
playertouch = true;
}else{
playertouch = false;
}
}
}
//Logic here!
if (playertouch){
if (Gdx.input.isTouched(i)) {
etc...
}
}
if(buttontouch){
if (Gdx.input.isTouched(i)) {
etc...
}
}
}