Java 2D引力?

时间:2011-10-13 10:55:18

标签: java 2d

我正在制作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;
        }
    }

出于某种原因,即使触摸它,我的代码也直接穿过墙壁。我想让它撞到墙上,如果它下面有一个,如果没有,那就继续下降。

1 个答案:

答案 0 :(得分:2)

你正在遍历所有的墙壁。如果相交的墙不是列表中的最后一个墙,则后续墙可能会将您的速度重置为1.当您检测到交叉点时断开循环。具体做法是:

if(player_rectangle.intersects(wall_rectangle)) {
    player.yspeed = 0;
    break;