Как сделать столкновение двух квадратов?

Я сделал этот код, чтобы 2 квадрата, переданных на каждый параметр, сталкивались. Я пытаюсь сделать столкновение на основе атрибутов квадратов

public boolean VerificarColisionCuadradoCuadrado(Cuadrado obj1, Cuadrado obj2) {
        if (obj1.x + obj1.w <= obj2.x) {
            return false;
        }
        if (obj1.y + obj1.h <= obj2.y) {
            return false;
        }
        if (obj1.x > obj2.x + obj2.w) {
            return false;
        }
        if (obj1.y > obj2.y + obj2.h) {
            return false;
        }
        return true;
    }

, являющихся квадратами:

public class Cuadrado {

public int w, h;
public int x;
public int y;
public int color;

public void dibujarCuadrado(Graphics g, int posX, int posY, int base, int altura,int color) {
    Line.drawline(g, posX, posY, base + posX, posY, color);
    Line.drawline(g, base + posX, posY, base + posX, altura + posY,color);
    Line.drawline(g, base + posX, altura + posY, posX, altura + posY,color);
    Line.drawline(g, posX, altura + posY, posX, posY, color);
    this.w=base;
    this.h=altura;
    this.x=posX;
    this.y=posY;
    this.color=color;
}

Я не нахожу ошибку, они не сталкиваются

ошибка, я думаю, что это в функции

Проверка квадрата столкновения квадрата

0
задан 12.11.2016, 04:05
3 ответа

Проблема, которую я вижу в тебе cГіdigo, состоит в том, что ты работаешь, не имея некоего края ошибки в виду во время столкновения. DeberГ-схвати иметь в виду это во время работы с реальными проблемами симуляции.

0
ответ дан 24.11.2019, 12:38

одинокой была проблема кода

public boolean VerificarColisionCuadradoCuadrado(Cuadrado obj1, Cuadrado obj2) {
        if (obj1.x + obj1.w < obj2.x) {
            return false;
        }
        if (obj1.y + obj1.h < obj2.y) {
            return false;
        }
        if (obj1.x > obj2.x + obj2.w) {
            return false;
        }
        if (obj1.y > obj2.y + obj2.h) {
            return false;
        }
        return true;
    }

удалите равенство первых 2 условий и сейчас функционируй!!!

0
ответ дан 24.11.2019, 12:38
  • 1
    Не теряй время с моим другим ответом. Твой versió n está совершенная и má s работоспособный, с твоими ограничениями, которых w и h положительные и квадраты, параллельные почве. Основательно ты подтверждаешь, что obj2 начался в á дополнительная преступница obj1, чтобы говорить, что они не сталкиваются. Функционирует даже в случае где квадрат está контент в другом. –  Peregring-lk 12.11.2016, 04:42
  • 2
    @Peregring-lk я думаю, что твой функционирует равно добра, хотя не testee очень хорошо –  hubman 12.11.2016, 04:48

Не для того, чтобы ты это используешь точно, но то же самое подает тебе книжный магазин Box2D. У него есть куча функциональности и может избавлять от тебя много работы.

http://box2d.org

0
ответ дан 24.11.2019, 12:38