gpt4 book ai didi

java - 按下 Canvas 时如何调用方法

转载 作者:行者123 更新时间:2023-12-02 09:24:45 25 4
gpt4 key购买 nike

我正在开发一款带有车辆的游戏,我想在按下 Canvas 时移动该车辆,就像这样,但这不起作用。

public boolean onTouch(View v, MotionEvent event) {

if (event.getX() > 0 && event.getX() < 150 && event.getY() > 550 && event.getY() < 700) {

do{

System.out.println("Hallo");

}while (canvas.isPressed());

return false;

但我只得到这个输出:

D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
I/System.out: Hallo

有什么想法吗?

最佳答案

设置一个全局 boolean 值以了解何时收到 MotionEvent.ACTION_DOWN 事件。

   mUserTouched = true; // Set to true when MotionEvent.ACTION_DOWN
mUserTouched = false; // set to false when MotionEvent.ACTION_UP is received

然后,您可能需要使用 Timer 或其他一些循环程序,每当收到 MotionEvent.ACTION_DOWN 时,它们就会首先启动。并让它根据某个时间间隔触发对 invalidate() 的调用。 invalidate() 将导致 View.onDraw() 被调用,以便您可以重新绘制汽车的位置。当接收到 MotionEvent.ACTION_UP 时,取消 Timer

如果存在边界,则每当 MotionEvent 发生在边界之外时,您还需要设置 mUserTouched = false'

关于java - 按下 Canvas 时如何调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58412226/

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