Java 2D гравитация? - PullRequest
       0

Java 2D гравитация?

0 голосов
/ 13 октября 2011

Я делаю 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 Ответ

2 голосов
/ 13 октября 2011

вы перебираете все свои стены. Если пересекаемая стена - не последняя стена в списке, последующие стены могут сбросить вашу скорость до 1. Разорвите петлю, когда вы обнаружите пересечение. В частности:

if(player_rectangle.intersects(wall_rectangle)) {
    player.yspeed = 0;
    break;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...