у меня есть игра с пулями и монстрами, где мне нужно освободить от пуль и монстров, когда они столкнулись с помощью прямоугольников, однако, когда происходит столкновение метод не возвращает истинупрямоугольник обнаружения столкновения не работает
вот что я сделал : я установить границы для каждой пули/монстра
bounds.left = (int)X;
bounds.top = (int)Y ;
bounds.right = (int)X + monsterWidth;
bounds.bottom = (int)Y + monsterHeight;
затем сделал булево метод
return bounds.intersect((int)X,(int) Y ,(int) X + monsterWidth, (int) Y + monsterHeight);
я есть эта бо НСР и тогда я называю их на gamethread
int i=0, j=0;
while (!monster.isEmpty() && monster.size()>i){
j=0;
while (!bullets.isEmpty() && bullets.size()>j){
if(monster.get(i).isColliding(bullets.get(j).getBounds())){
Log.v("collided", "Collided!");
monster.get(i).setRelease(true);
bullets.get(j).setRelease(true);
}
j++;
}
i++;
}
У меня есть журнал по каждому за пределы, и оба из них являются правильными левый < = правый верхний < = нижний однако в методе iscolliding нет журнала , я попробовал instersects (левый, верхний, правый, нижний), но все тот же.
Предполагается, что она ориентирована по оси (не вращается) ing) прямое исправление столкновений? – Bisder
Да, она ориентирована по оси, пересекается только для вращающихся прямоугольников? – NoobMe
Я не уверен в этом, так как я никогда не использовал его, я просто сделал свой собственный метод проверки пересечений, который я продемонстрировал вам ниже. Проверьте это – Bisder