им довольно новый для программирования, так что это может быть действительно очевидно, но когда я запускаю эту часть моего кодаJava Area.intersects (Прямоугольник) вне границ
public void movePlayer(){
Rectangle playerRect = new Rectangle((int) player.getxPositie(),(int) player.getyPositie()-12,20,35);
if(water.intersects(playerRect)){//out of bounds????
player.swim=true;
jump=true;
if(SplashP == true){
SplashP=false;
Splash((int) (player.getxPositie()/5),versnelling*12);
}else{}
}else{ player.swim=false;
SplashP = true;}
}
...
я получаю следующее исключение и я не» знаю, почему
Exception in thread "Thread-20" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
at java.util.Vector.get(Vector.java:748)
at java.awt.geom.Area.getCachedBounds(Area.java:434)
at java.awt.geom.Area.intersects(Area.java:606)
at java.awt.geom.Area.intersects(Area.java:618)
at Model.movePlayer(Model.java:723)
at Animator.run(Animator.java:19)
at java.lang.Thread.run(Thread.java:745)
Еще одна странная вещь, что когда вода пересекает игрок случай еще Alse получает triggerd половину времени
PS. Площадь воды построена из коллекции треугольников
Вы изменяете 'water' в другой теме одновременно? – wero
Итак, почему вы не проверяете, действительно ли у вас есть такое количество элементов в массиве? – Asakura
@Asakura, потому что это внутренний член в 'java.awt.geom.Area' – wero