Anuncios Google

como creo una colision perfecta

he visto un juego de zelda no me arecuerdo bien el nombre pero el juego utiliza mask k significa mascara para las colisiones los juego en lua cuando creo una colision la colision pasa solo cuando toca su altura y su ancho pero no la imagen para si no se entendio pongo un ejemplo

 

pongo una imagen: un circulo y entonces la colision tiene k ser cuadriculada como si fuera un cuadro no un circulo

 

un salu2 


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 P22

A mi para lo de las

A mi para lo de las colisiones se me ocurre otra idea :
Que cada parte de la imagen que tenga color se choque añadiendolo a una tabla
Ej:

Colision = {}

  Colision[1] = ( x = personaje[1].x + 20 , y = personaje[1].y + 10 )

  Colision[2] = ( x = personaje[1].x + 30 , y = personaje[1].y + 50 )

Y asi sucesivamente hasta que cubras todo el borde pero seria muy costoso y te ocuparia mucho espacio.

Espero serte de ayuda

Saludos , P22


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Imagen de trom_us

porque si porque no

si haces un juego de velocidad en los truncasos, no uses el screen para determinar adonde fue a dar, usa archivos de texto o tablas, ya sea para guiarte como un mapa, te digo depende que tipo de programa hagas, o la tabla, en puntos extratejicos, si fueras a pegar con una lanza de un pixel, en un agugero de 1 pixel,, ta cañon... que buscaras en toda la pantalla ver a donde va, usa la punta como referencia, ya que puedes saber a donde va esta , y compara "solo" cuando ya sepas que esta muy serca del objetivo, si le vas a dar o no, no por pixel tras pixel, sino en las variables, y asi como tienes, pero NO uses una variable para cada punto de pantalla en tu mapa, solo los puntos donde vas a dar, si la lanza en uno o dos agujeros, o la mano del enemigo, donde pega segun tus sprties o majenes, ... cara, que tangrande esta la mano, que partes de la mano darian, etc, solo esos puntos deves de controlar... serian tan pocos, y muy precisos. si te interesa en uno dos años te escribo el codigo.. bueno, un dia de estos pues.. dame chance nada mas. en otras palabras usa muchos calculos internos, nada con pantalla, porque esode plano como han dicho, haria de tu programa algo muuuuy lento. aunque el metodo bien puede ser usado para cambiar colores, como lo hace este programa http://psp.scenebeta.com/node/23454 que usa los colores internos de la imagen en una variable de imagen, para cambiarlos, no lee el archivo que seria mas facil, porque simplemente no hay idea de como...jeje. 

saludos. 

Imagen de pipagerardo

Colisiones perfectas...

Lo único que se me ocurre para una perfecta colisión es la comprobación pixel por pixel de ambas imágenes. Aquí te dejo información para trabajar con pixel en LUA. Todas las palabras con guión pueden ser cambiadas a gusto del programador.

_color = _imagen:pixel( x, y )
_colors = _color:colors()
_componente_roja = _colors.r
_componente_verde = _colors.g
_componente_azul = _colors.b
_transparencia = _colors.a 

Pero te advierto que estas operaciones son muy lentas y te van ha relentizar una pasada el juego...

Sobre las máscaras suelen ser imágenes a dos colores uno para el fondo y otro para la colisión. Cuando dos sprites se toquen hay que verificar en ambos sprites que la parte que colisiona coinciden pixel del color de colisión en ambas imágenes. Pero esto es bastante engorroso y lento.

Yo ahora no tengo tiempo, pero este es un tema muy interesante sobre todo si quieres hacer un juego de lucha tipo Street Fighter y claro, los manporros tienen que ser perfectos...

 

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.