我正在尝试开发一个自上而下的射击游戏。目前我正在从头开始做所有事情,因为我想更好地学习 Java。我现在的问题是碰撞检测。我正在使用 Rectangle.Intersects(如代码中所示)来确定玩家是否与墙壁相交。这几乎是完美的,除了当玩家仅在一个轴上碰撞(即撞到垂直墙壁)时,他们在两个方向上都被锁定。我想实现滑动以获得更流畅的游戏玩法。
我对如何做到这一点有一点想法,这将涉及分别检查 x 和 y 平面。但是,我不知道这是否可以使用我目前的方法。
我对 Java 有点陌生,所以我不太了解可以用来代替 Rectangle 的不同类型的库,但它们一直运行良好,我想坚持使用它们。
如果有使用矩形的解决方案,那就太好了。如果没有,我愿意接受新的想法。
谢谢。
这是我正在使用的代码
//x and y are position of player and vx and vy are the velocities in respective directions
public void tick() {
x+=vx;
y+=vy;
collision();
//movement
//...
}
private void collision() {
for(int i = 0; i< handler.object.size(); i++) {
GameObject tempObject = handler.object.get(i);
if(tempObject.getId() == ID.Block) {
if(getBounds().intersects(tempObject.getBounds())) {
x +=-vx;
y +=-vy;
}
} //...
public Rectangle getBounds() {
return new Rectangle((int)x,(int)y,32,32);
}
泛舟湖上清波郎朗
蛊毒传说
随时随地看视频慕课网APP
相关分类