Anuncios Google

Duda sobre colisiones en los mapas

Hey que hay de nuevo.

Que sistema de colisiones me recomiendan para un juego en 2D

Estuve viendo los ejemplos de palib y no le entiendo de como agregar el mapa de coliciones

el codigo no es facil pero tampoco es cosa del otro mundo pero si me gustaria que alguien me explicara como agregar ese mapa de coliciones

tambien estuve viendo en WIKI pero no explican como agregarle el mapa de col... 

y si no es mucho pedir que me den un ejemplo de como agregar un mapa de colisiones

o algun ejemplo de colisiones xfa

TODO POR ESE MAPA DE COLISIONES QUE JOD.....

Saludess!!!Llora

 


El conocimiento es poder

visiten mi pagina http://jpdarkhacker.blogspot.com/


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 WhiteSkull

Un mapa de colisiones 2D, es

Un mapa de colisiones 2D, es normalmente un array bidimensional, no hay nada del otro mundo... Consiste en una parte no visual de la memoria que situa en una parte de la memoria los Sprites u objetos a colisionar representados con un valor... incluso es posible usarlo en un mundo 3D, siempre y cuando se mueva en un plano... aquí tienes un ejemplo http://www.youtube.com/watch?v=ORwxYJPjVrk

pero para que lo veas mejor... mmmMMMmmm

éste código es ficticio, es una referencia...

 

// preparamos el mapa de colisiones
 
// si se es conocedor de los punteros es recomendable 
 
// usarlos dado que es un método de acceso directo a la memoria
 
int mapa_colision[64][32];
 
...
 
// Ya hemos cargado los Sprites y lod sdemás datos, así como ´"formateado" el mapa de colisión
 
...
 
while (1){
 
// situamos el sprite, el cual se moverá en un entorno de 256 por 192
 
PutSprite(X,Y);
 
// representamos el sprite con un valor en el mapa de colisiones, en éste caso le damos 1
 
// lo ideal es asociar una "identidad" con un valor
 
mapa_colision(0.25*X,0.16*Y)=1;
 
// realmente tendría que "pintar" el Sprite que se ve, en base de una escala 64x32 con el valor 1 en el mapa
 
// pero no quiero complicarte
 
...
 
... 
 
// detectamos colisión, DisparoX y DisparoY son las coordenadas del Sprite de un disparo enemigo
 
if (mapa_colisión(0.25*DisparoX,0.16*DisparoY)==1) Vida=Vida-1; // Significará que coincide con el punto donde ésta nuestro PJ
 
// puedes incluso usar el mapa_colisión cómo un minimapa para saber en que habitación te encuentras...
 
...

Espero que comprendas éste concepto y te sirva de ayuda...

 

Imagen de DarkHacker2635

Muy bueno

Aunque es algo complicado por los punteros tu ejemplo me ha aclarado un poco mas, aun que de tanto esperar respuesta he creado mi propio sistema de colisiones, es muy simple y aunque acapara un poco de espacio en la ram no lo veo para nada enrredadiso como otros.

Simplemente pongo un mapa o fondo en dos colores y uso una coordenada en espesifica para el sprite y si esa coordenada toca un color especifico entonces hay colision.

muy simple y efectivo ademas permite una gran presicion, y muy facil de programar lo unico malo es que debo cargar un fondo de dos colores en la ram lo cual es espacio inecesario.

pero voy a practicar tu ejemplo gracias.

Saludeszzz!!


El conocimiento es poder

visiten mi pagina http://jpdarkhacker.blogspot.com/

Imagen de WhiteSkull

ES ESO!

 

 DarkHacker2635 > Simplemente pongo un mapa o fondo en dos colores y uso una coordenada en espesifica para el sprite y si esa coordenada toca un color especifico entonces hay colision (no m  funciona el cite?)

Es exactamente eso!! sólo que no se visualiza, los mapas de bits, imagenes, son arrays (un contenedor) que pasan por un proceso de "volcado" (transferir) sobre una memoria visual, también conocida cómo la VRAM, desde tiempos inmemoriables, siempre ha estado ahí... Lengua fuera

 

El mismo método que usas para leer un pixel o escribirlo en la pantalla...

PA_Put8bitPixel(pantalla, X, Y, color);   // PA_DrawBg[pantalla][(X >> 1) + (Y << 7)]=color;
 
color=PA_Get8bitPixel(pantalla, X, Y);	// color=PA_DrawBg[pantalla][(X >> 1) + (Y << 7)];
 
// PA_DrawBg , c'omo puedes ver es un array multidimensional, vaya decepci'on :) , realmente esta tecnica
 
// optimiza la gesti'on de la VRAM e impide el molesto parpadeo del refresco, o sea cuano pintas en la pantalla, pintas directamnete
 
// en un array y de aqu'i salta a la VRAM, no automaticamente claro jeje... etonces esto puedes hacerlo sin mostralo por pantalla

 

Es como el jueguillo que vi el otro dia de @hundir la flota para DS@, tus barcos estan ahi, pero nadie los ve...

 

 

Imagen de DarkHacker2635

GRAN DUDA

con respecto a cargar el mapa de colisiones como lo hago, mas bien seria en como definir el mapa de colisiones en el codigo?
por ejemplo si nombro un mapa de colisiones "COLISIONM"
como lo cargaria en el codigo o que haria en el codigo
actualmente estoy teniendo algunos problemas con el sistema que he creado ya veo que es tan simple que solo serviria para juegos simples y aunque un plataformas parece simple las apariencias engañan.

te agradeceria mucho que me saques de mis dudas

Saludesz.!


El conocimiento es poder

visiten mi pagina http://jpdarkhacker.blogspot.com/

Imagen de DRmack

knightfox me podriaas decir

knightfox me podriaas decir algun tutorial para aprender tu libreria

gracias

Imagen de kNightFox

Ultima version aqui:

Ultima version aqui: http://blogs.gamefilia.com/knightfox/11-08-2009/25472/nightfoxs-lib-ver20090811

 

En la carpeta DOCS esta toda la documentacion. Ademas tienes una carpeta de ejemplos, con el codigo necesario comentado para aprender como van las funciones.


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de DarkHacker2635

Oye gracias de nuevo

gracias voy a probar y despues cuento como me ha ido y por cierto como haces para crear librerias personalizadas acaso son como funciones o me equivoco.

hasta pronto!!!!

OYE EL LINK ESTA ROTO!


El conocimiento es poder

visiten mi pagina http://jpdarkhacker.blogspot.com/

Imagen de exterminator

No está roto

a mí por lo menos me va. Prueba de nuevo.

Salu2

Imagen de DarkHacker2635

No me refiero al enlace

es que no especifique el link de descarga es el que esta roto!!

Saludes...

Imagen de kNightFox

Es posible, ahi era una

Es posible, ahi era una version bastante vieja de mi libreria.

http://blogs.gamefilia.com/knightfox/11-08-2009/25472/nightfoxs-lib-ver20090811

Aqui esta la ultima version, leete el articulo sobre mapas de colisiones y descargate las funciones desde esta entrada de mi blog. Si usas PALIB, en la pagina oficial busca un post llamado NightFox's PALIB extensions, que digamos que son un conjunto de funciones que me hice para PALIB, antes que me hartara de ellas y me hiciera mi propia libreria.


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de DarkHacker2635

sigo en la luna

no se que sera pero sigo tan perdido en los mapas de coliciones mi duda principal es:

uso un sprite de dimension 64x64 pero el personaje solo ocupa 32x64 lo hice de esa forma porque el personaje en algunas animaciones abarca los 64x64 y no se si habra algun problema con eso.

 

como hago el para comparar el mapa de coliciones con el sprite.

 

Que enredada

Saludes ?????


El conocimiento es poder

visiten mi pagina http://jpdarkhacker.blogspot.com/

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.