Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public boolean InterseccionEntreSprites(Sprite Sprite1, Sprite Sprite2){
- boolean HayInterseccion=false;
- //Determino los bordes de cada Sprite
- Float Sp1Arriba, Sp1Abajo, Sp1Derecha, Sp1Izquierda, Sp2Arriba,Sp2Abajo, Sp2Derecha, Sp2Izquierda;
- Sp1Arriba=Sprite1.getPositionY() + Sprite1.getHeight()/2;
- Sp1Abajo=Sprite1.getPositionY() - Sprite1.getHeight()/2;
- Sp1Derecha=Sprite1.getPositionX() + Sprite1.getWidth()/2;
- Sp1Izquierda=Sprite1.getPositionX() - Sprite1.getWidth()/2;
- Sp2Arriba=Sprite2.getPositionY() + Sprite2.getHeight()/2;
- Sp2Abajo=Sprite2.getPositionY() - Sprite2.getHeight()/2;
- Sp2Derecha=Sprite2.getPositionX() + Sprite2.getWidth()/2;
- Sp2Izquierda=Sprite2.getPositionX() - Sprite2.getWidth()/2;
- //Me fijo si el vértice superior derecho de Sp1 está dentro de Sp2
- if (Sp1Arriba>=Sp2Abajo && Sp1Arriba<=Sp2Arriba &&
- Sp1Derecha>=Sp2Izquierda && Sp1Derecha<=Sp2Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 1");
- }
- //Me fijo si el vértice superior izquierdo de Sp1 está dentro de Sp2
- if (Sp1Arriba>=Sp2Abajo && Sp1Arriba<=Sp2Arriba &&
- Sp1Izquierda>=Sp2Izquierda && Sp1Izquierda<=Sp2Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 2");
- }
- //Me fijo si el vértice inferior derecho de Sp1 está dentro de Sp2
- if (Sp1Abajo>=Sp2Abajo && Sp1Abajo<=Sp2Arriba &&
- Sp1Derecha>=Sp2Izquierda && Sp1Derecha<=Sp2Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 3");
- }
- //Me fijo si el vértice inferior izquierdo de Sp1 está dentro de Sp2
- if (Sp1Abajo>=Sp2Abajo && Sp1Abajo<=Sp2Arriba &&
- Sp1Izquierda>=Sp2Izquierda && Sp1Izquierda<=Sp2Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 4");
- }
- //Me fijo si el vértice superior derecho de Sp2 está dentro de Sp1
- if (Sp2Arriba>=Sp1Abajo && Sp2Arriba<=Sp1Arriba &&
- Sp2Derecha>=Sp1Izquierda && Sp2Derecha<=Sp1Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 5");
- }
- //Me fijo si el vértice superior izquierdo de Sp1 está dentro de Sp2
- if (Sp2Arriba>=Sp1Abajo && Sp2Arriba<=Sp1Arriba &&
- Sp2Izquierda>=Sp1Izquierda && Sp2Izquierda<=Sp1Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 6");
- }
- //Me fijo si el vértice inferior derecho de Sp1 está dentro de Sp2
- if (Sp2Abajo>=Sp1Abajo && Sp2Abajo<=Sp1Arriba &&
- Sp2Derecha>=Sp1Izquierda && Sp2Derecha<=Sp1Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 7");
- }
- //Me fijo si el vértice inferior izquierdo de Sp1 está dentro de Sp2
- if (Sp2Abajo>=Sp1Abajo && Sp2Abajo<=Sp1Arriba &&
- Sp2Izquierda>=Sp1Izquierda && Sp2Izquierda<=Sp1Derecha) {
- HayInterseccion=true;
- Log.d("IntEntSprites","Intersección caso 8");
- }
- Log.d("IntEntSprites", "Hay intersección:"+HayInterseccion);
- return HayInterseccion;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement