用vector装载大小一致的图片 40*40的像素
随便写一个图片移动的方法
如何去做所有图片之间的碰撞检测 就是让图片在移动的途中不会相互重叠//et 是当前类的引用
public Rectangle getRect(){
return new Rectangle(x,y,40,40);
}
public boolean ete(ETanke et){
if(this.getRect().intersects(et.getRect())){
return true; }
//线程里调用这个方法
for(int i= 0 ; i <etankes.size()-1; i ++){
if(etankes.elementAt(i).ete(etankes.elementAt(i+1))){
System.out.println("YES");
}
for(int j = 0; j<etankes.size(); j ++){
}
}
代码出现的问题 -1是随便添加的 因为不加的话一个是出现自己与自己相撞
添加-1之后 new出10个图片之后 会出现碰撞 但是不是与它之外所有的 好像是有对应的才行
具体什么问题就不清楚了 想请教一下大家 完善这段代码
随便写一个图片移动的方法
如何去做所有图片之间的碰撞检测 就是让图片在移动的途中不会相互重叠//et 是当前类的引用
public Rectangle getRect(){
return new Rectangle(x,y,40,40);
}
public boolean ete(ETanke et){
if(this.getRect().intersects(et.getRect())){
return true; }
//线程里调用这个方法
for(int i= 0 ; i <etankes.size()-1; i ++){
if(etankes.elementAt(i).ete(etankes.elementAt(i+1))){
System.out.println("YES");
}
for(int j = 0; j<etankes.size(); j ++){
}
}
代码出现的问题 -1是随便添加的 因为不加的话一个是出现自己与自己相撞
添加-1之后 new出10个图片之后 会出现碰撞 但是不是与它之外所有的 好像是有对应的才行
具体什么问题就不清楚了 想请教一下大家 完善这段代码
for(int i= 0 ; i <etankes.size(); i ++){
for(int j=i+1;j<etankes.size();j++){
if(etankes.elementAt(i).ete(etankes.elementAt(j))){
System.out.println("YES");
}
}
}
etankes.remove(i);
etankes.remove(j);跑一伙就出现一个是溢出的报错
用j=i+1也是一样
Exception in thread "Thread-3" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 3
remove会改变集合的下标,造成rrayIndexOutOfBoundsException异常
要remove必须使用iterator方式遍历集合