1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
|
public boolean collide(GameObject sprite1,GameObject sprite2) {
raster1 = new boolean[sprite1.image.getWidth()][sprite1.image.getHeight()];
raster2 = new boolean[sprite2.image.getWidth()][sprite2.image.getHeight()];
for(int x = 0;x<sprite1.image.getWidth();x++){
for(int y = 0;y<sprite1.image.getHeight();y++){
int argb = sprite1.image.getRGB(x,y);
if(argb==0){
raster1[x][y] = false;
}
else{
raster1[x][y] = true;
}
}
}
for(int x = 0;x<sprite2.image.getWidth();x++){
for(int y = 0;y<sprite2.image.getHeight();y++){
int argb = sprite2.image.getRGB(x,y);
if(argb==0){
raster2[x][y] = false;
}
else{
raster2[x][y] = true;
}
}
}
if(sprite1.boundingbox.intersects(sprite2.boundingbox)){
startx = sprite2.getBoundingbox().x;
endx = (sprite1.getBoundingbox().x+sprite1.getBoundingbox().width)-sprite2.getBoundingbox().x;
starty = sprite1.getBoundingbox().y;
endy = (sprite2.getBoundingbox().y+sprite2.getBoundingbox().height)-sprite1.getBoundingbox().y;
boolean nontransparent1 = raster1[endx][endy]; //hier brauche ich Hilfe um die Stelle zu berechnen
boolean nontransparent2 = raster2[endy][endx];
if(nontransparent1 && nontransparent2){
return true;
}
}
return false;
} { |