我已查看以下链接:
http://www.ehow.com/how_12134402_detect-rectangle-collision-java.html
我在我的播放器和房子周围制作了2个矩形,但我对if语句看起来应该是什么感到困惑,我在x上有一个布尔值,意味着如果我的矩形相交x将返回true,所以我知道我从
if(x=true){
//what to type in here for my collision?
}
我的2D状态变化游戏需要这种碰撞,我有一个玩家可以在地图上移动键盘和房子,我希望我的玩家不能穿过房子。
提前谢谢。
答案 0 :(得分:1)
使用Rectangle2D.Double rect = new Rectangle2D.Double(x,y,w,h))
定义您的碰撞盒。
然后检查
rect.contains(x,y);
或
bool isCollision = rectOne.intersects(rectTwo);
或更完整的例子
// returns true at the first collision
// returns false if no collision with none of the houses
Rectangle2D.Double player = new Rectangle2D.Double(x,y,w,h);
Rectangle2D.Double[] houses = map.getHouseBounds();
boolean isAnyCollision = false;
int i = 0;
while (!isAnyCollision && cnt < houses.length) {
isAnyCollision = player.intersects(houses[i]);
}
return isAnyCollision;