有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    你在你所有的墙上迭代。如果相交的墙不是列表中的最后一面墙,则后续墙可能会将速度重置为1。检测到交叉口时,请断开回路。具体而言:

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