gpt4 book ai didi

java - 位图跟随我的手指出现问题

转载 作者:行者123 更新时间:2023-12-01 10:39:01 24 4
gpt4 key购买 nike

我正在尝试制作一个位图,存储在 Player 类中,跟随我的手指移动,而不赋予它“传送”的能力。我首先尝试了这段代码:

@Override
public boolean onTouchEvent(MotionEvent event) {

pointerX = (int)event.getX();
pointerY = (int)event.getY();
switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

pointerX = (int)event.getX();
pointerY = (int)event.getY();
if (player.playerAlive) {
if((event.getX() > player.getX() || event.getX() < player.getX() + player.getWidth()) &&
(event.getY() > player.getY() || event.getY() < player.getY() + player.getHeight())) {
isDown = true;
}
}

break;

case MotionEvent.ACTION_MOVE:
if(isDown){
player.move(true);
}

break;

case MotionEvent.ACTION_UP:
isDown = false;
break;
}
return true;
}

但是我注意到,点击时即使手指最轻微的移动也会导致 Action_MOVE,所以我将 ACTION_MOVE 中的代码替换为:

if(isDown){
if(event.getX() < pointerX - 20 || event.getX() > pointerX + 20)
player.move(true);
if(pointerY < event.getY() - 20 || pointerY > event.getY() + 20)
player.move(true);
}

但这导致玩家根本不动,之前玩家会正确跟随手指,但如果我远离玩家轻敲,它也会“传送”。如何正确摆脱“传送”行为?

最佳答案

您使用 ACTION_MOVE 的方式是正确的,但是当pointerX设置为等于event.getX()时,您正在将event.getX()与pointerX进行比较。您是想将它与player.getX() 进行比较吗?

关于java - 位图跟随我的手指出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34520749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com