gpt4 book ai didi

java - 如何检测用户是否触摸了我的 Sprite /屏幕?

转载 作者:行者123 更新时间:2023-12-01 11:30:46 27 4
gpt4 key购买 nike

基本上, Sprite 每隔(1,2 或 3 秒)随机生成一次,并且无限次生成。我希望 Sprite 在触摸屏幕后消失。 (Android触摸事件)

public void newEnemy(){
Sprite newEnemy=Pools.obtain(Sprite.class);
newEnemy.set(enemy);
newEnemy.setPosition(200, 700);
enemies.add(newEnemy);
}

public void update(){
deltaTime=Gdx.graphics.getDeltaTime();
timer+=1*deltaTime;
timer2+=1*deltaTime;
timer3+=1*deltaTime;

if(timer>=random){
newEnemy(); //spawn a new enemy
timer-=random;
random=rTime.nextInt(3)*1f+1;//create random time if timer>= initial random time;
}

最佳答案

您需要设置一个触摸监听器。有关信息here

然后,您需要检查触摸位置是否在 Sprite 范围内。一种常见的方法是创建一个矩形并检查触摸位置是否在矩形内部,如下所示

 Rectangle2D bounds = new Rectangle2D.Float(x, y, width, height);

`if(bounds.contains(`the touch x value`,` the touch y value`){`

//your code to remove the sprite
}

或者,您可以在 Sprite 中编写自己的方法,如果您需要的只是 contains 方法,这将是一个更好的决定。这样,您就不必导入另一个库。 (请注意,这没有多大区别,但这是一个很好的做法)

public boolean contains(int x, int y) {
return (x > this.x && y > this.y && x < this.x + this.width && y < this.y + this.height);
}

关于java - 如何检测用户是否触摸了我的 Sprite /屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413469/

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