我正在制作2D Java游戏,我正试图找出如何添加基本的“引力”
我目前的代码是:
public void checkCollision() {
Rectangle player_rectangle = new Rectangle(player.getX(),player.getY(),32,32);
for(Wall wall : walls) {
Rectangle wall_rectangle = new Rectangle(wall.getX(), wall.getY(), 32,32);
if(player_rectangle.intersects(wall_rectangle)) {
player.yspeed = 0;
} else {
player.yspeed = 1;
}
}
出于某种原因,即使触摸它,我的代码也直接穿过墙壁。我想让它撞到墙上,如果它下面有一个,如果没有,那就继续下降。
答案 0 :(得分:2)
你正在遍历所有的墙壁。如果相交的墙不是列表中的最后一个墙,则后续墙可能会将您的速度重置为1.当您检测到交叉点时断开循环。具体做法是:
if(player_rectangle.intersects(wall_rectangle)) {
player.yspeed = 0;
break;