-
Notifications
You must be signed in to change notification settings - Fork 0
/
Colision.pde
31 lines (25 loc) · 963 Bytes
/
Colision.pde
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
public class Colision{
private Mapa mapa;
public Colision(Mapa mapa) {
this.mapa = mapa;
}
public ArrayList<Elemento> colisionar(Elemento e){
ArrayList<Elemento> colisonados = new ArrayList<Elemento>();
for (Elemento elemento : mapa.obtenerElementos()) {
if(!(elemento == e )){
if(verificarColision(e, elemento)){
colisonados.add(elemento);
}
}
}
return colisonados;
}
//Devuelve true si hay colisión y false si no existe colisión
public boolean verificarColision(Elemento e1, Elemento e2){
boolean sinColisionX = (e1.obtenerMargen()[1] <= e2.obtenerMargen()[0])
|| (e1.obtenerMargen()[0] >= e2.obtenerMargen()[1]);
boolean sinColisionY = (e1.obtenerMargen()[2] >= e2.obtenerMargen()[3])
|| (e1.obtenerMargen()[3] <= e2.obtenerMargen()[2]);
return !(sinColisionX || sinColisionY);
}
}