Anuncios Google

Funcion colision por cajas

Hola, como las colisiones por cajas son un poco coñazos por todo lo que has de escribir he decidido hacer una funcion, aqui os la dejo y espero que os sea util ;)

int CH_ColisionCajas(u16 x1,u16 y1,u16 x2,u16 y2,u8 anchox1,u8 altoy1,u8 anchox2,u8 altoy2){//posicion x del sprite 1/posicion y del sprite 1/posicion x del sprite 2/posicion y del sprite 2/ancho del sprite 1/ alto del sprite 1/ancho del sprite 2/ alto del sprite 2
 
if(((x1<=x2+anchox2 && x1>=x2+anchox2) 
 
   || (x1<=x2+anchox2 && x1+anchox1>=x2))  
 
   && ((y1<=y2+altoy2 && y1>=y2)  
 
   || (y1+altoy1<=y2+altoy2 && y1+altoy1>=y2))){
 
return 1;}//si la colision se efectua devuelve 1
 
else{ return 0;}//si la colision no se efectua devuelve 0
}  

Vale, esta es la funcion

Y ahora un ejemplo de como usarla

 //logicamente antes hemos crado los sprites 1 y 2
	posy += (Pad.Held.Down-Pad.Held.Up); //movemos el sprite, algo basico
	posx += (Pad.Held.Right-Pad.Held.Left);
 
 
if(CH_ColisionCajas(posx,posy,128-8,96-16,32,16,16,32)==1){//colocamos todos los datos, y le metemos un ==1, es decir si la colision devuelve 1 (si hay colision) ocurre lo que sea, en este caso escribimos un texto
   PA_OutputText(1,0,0,"Colision");
}else  PA_OutputText(1,0,0,"             ");
 
PA_SetSpriteXY(0,0,posx,posy); //aqui actualizo la posicion del sprite que muevo

y ya esta, asi de facil y rapido, espero que os haya servido de ayuda ;)

Solo necesito vuestra opinion de que os parece y de como podria mejorarla(si se puede, pero seguro que sabeis como hacerlo los de arriba)

Aqui os dejo un video que demuestra su funcionamiento y explica como usarla si no lo has entendido arriba, no lo subo a youtube porque perdia mucha calidad y las letras se veian borrosas, miradlo en pantalla completa y lo vereis todo bien.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Draco el dragon

:0

Es buena idea, no se me habia ocurrido hacer una funcion para colisiones, siempre ponia un comentario al final de todo lo copiaba lo pegaba y cambiaba valores D:

P.D.: CH... ._.

Imagen de Cheleon

CH_

Si,CH, es que no se me ocurria nada mas :P

 

Imagen de Draco el dragon

Ya

Ni SC, ni SI, ni JS, ni ID, ni IHD, ni... _, no, no habia nada mas xD

Suerte en el scenery ;D

Imagen de Cheleon

CH de CHeleon ¬¬

CH de CHeleon ¬¬

Imagen de _-Slash-_

Y

De los "CHetos".

Imagen de Cheleon

(Sin asunto)

Imagen de The Dark Master

Uno de esos me acabo de comer hoy :P.

No soy moderador pero os aviso de que de un momento a otro llegará edu y entonces...Sorprendido.

Imagen de Cheleon

vale, este comentario es el

vale, este comentario es el ultimo

Los pandilla estos son mis preferidos

:PPPPPP (la lengua es de babear xD)

Imagen de _-Slash-_

Ala...

xD esos no los venden aquí en México xD.

Imagen de OdnetninI

muy buena pero he seguido los

muy buena pero he seguido los pasos del tutorial en video y nada lo atraviesa como si nada y sin decir ni mu

Imagen de Anabol

Asegúrate de que el anchox1 y

Asegúrate de que el anchox1 y el altox1 sean menores que el anchox2 y el altox2.

Ejemplo:

Uso Correcto:

BoxCol(X1,Y1,X2,Y2,8,8,16,32)==1)

Uso Incorrecto:

BoxCol(X1,Y1,X2,Y2,16,32,8,8)==1)

Salu2tS!

Imagen de Anabol

Tenemos el windows 7 igual xDD

"Fallo" en tu código(vídeo): Cuando creas un Sprite en el argumento donde pones las coordenadas, no hace falta ponerle coordenadas variables de eso ya se encarga el PA_SetSpriteX"Y"(arg);

Se tendría que hablar, pero creo que se podría añadir el tuto del 5 día.

Salu2tS!

Imagen de Cheleon

Ya bueno, pero es una

Ya bueno, pero es una costumbre que tengo, asi se de que sprite es cada variable

PD: Ponte al msn tengo que hablarte de eso...

PD2:La colision por cajas que explican en el tuto del dia5 esta mal, ya deje la solucion en un comentario, espero que lo editen pronto

Imagen de _-Slash-_

Genial :D

Esto me sera útil, gracias ;).

Imagen de Cheleon

De nada, espero que te

De nada, espero que te facilite las cosas mi primera funcion ;)

Imagen de _-eDu69-_

Esto va a programación

Ya que no es ningún homebrew/tutorial que podamos pasar a portada, así que ésto debería ir a programación (corregidme si me equivoco).

SaluDTs

Imagen de Anabol

Así es, estás en lo cierto edu.

Te las has currado Cheleon, te ha quedado muy bien, seguro que la uso más de una vez.

Salu2tS!

Imagen de Cheleon

;)

THX :D, poco a poco voy aprendiendo

Igualmente! :P

Imagen de Cheleon

ya esta, movido, gracias por

ya esta, movido, gracias por el aviso

aunque yo creia que era un aporte...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.