gpt4 book ai didi

java - 检测 Sprite 是否被触摸的简单方法?

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

我有两个 Sprite ,需要同时触摸它们,所以我制作了两个 Vector2 xy 和 xy1。

//xy = x and y coordinate of pointer 1
//xy1 = x x and y coordinate of pointer 2

//faces is the class for the sprites

if(xy.x >= faces.faceSpr.getX() && xy.x <= faces.faceSpr.getX() + faces.faceSpr.getWidth() && //detecting if xy and xy1 are inside the sprites
xy.y >= faces.faceSpr.getY() && xy.y <= faces.faceSpr.getY() + faces.faceSpr.getHeight() && //*
xy1.x >= faces.faceSpr1.getX() && xy1.x <= faces.faceSpr1.getX() + faces.faceSpr1.getWidth() && //*
xy1.y >= faces.faceSpr1.getY() && xy1.y <= faces.faceSpr1.getY() + faces.faceSpr1.getHeight()) //*
score += 1;
else if(xy1.x >= faces.faceSpr.getX() && xy1.x <= faces.faceSpr.getX() + faces.faceSpr.getWidth() && //*
xy1.y >= faces.faceSpr.getY() && xy1.y <= faces.faceSpr.getY() + faces.faceSpr.getHeight() && //*
xy.x >= faces.faceSpr1.getX() && xy.x <= faces.faceSpr1.getX() + faces.faceSpr1.getWidth() && //*
xy.y >= faces.faceSpr1.getY() && xy.y <= faces.faceSpr1.getY() + faces.faceSpr1.getHeight())

我还没有测试这段代码是否有效,是否有更简单更好的方法?

编辑:

我尝试使用 getBoundingRectangle() 方法,它有效,但我在设置它的位置时遇到问题。

sprite.getBoundingRectangle().setPosition(x,y);
// then I check if it works
System.out.println(sprite.getBoundingRectangle().getPostion);

但结果始终是 0.0, 0.0

最佳答案

解决办法很简单。获取它的矩形并进行 contains 调用。

sprite.getBoundingRectangle().contains(new Vector2D(touch.x,touch.y)); //or
sprite.getBoundingRectangle().contains(touch.x, touch.y); //

确保您的未投影正确。

关于java - 检测 Sprite 是否被触摸的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870881/

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