2010-02-23 16 views
5

He dibujado mosaicos en mi juego XNA y he cargado mi personaje. Mi personaje, sin embargo, no se mueve; el mapa sí, lo que le da la ilusión de movimiento. Ahora me pregunto cómo probar realmente contra ellos por colisión. Quiero decir, ¿a dónde va el código de colisión y cómo hago que todos los cuadros representen 'una gran cosa'?Colisión basada en mosaico en XNA

+0

¿Podría aclarar un poco la situación? es decir. ¿Cómo estás usando el mapa de fichas en tu juego? ¿El personaje ocupa un solo mosaico o varios mosaicos (a la Tetris)? ¿Los obstáculos del juego ocupan múltiples fichas? Estoy un poco perdido, ya que creo que la detección de colisiones sería una simple cuestión de comparar la posición del personaje con los obstáculos en el mapa de fichas, en lugar de la detección de colisiones basada en píxeles ... – Syndog

Respuesta

5

Hay un tutorial en pixel based collision detection en el club de XNA Creator. Tendrá que averiguar en qué objetos desea realizar la detección de colisión. Supongo que quieres que el personaje se mueva a través del fondo de mosaico, por lo que no querrás comprobar la colisión entre tu personaje y el fondo. En su lugar, debes hacer cualquier sprite de obstáculo y hacer detección de colisión en esos.

+0

Eso lo sé, pero yo no sé cómo probar la colisión para esos obstáculos ya que son fichas colocadas por un bucle for. – DMan

+0

No estoy seguro de seguir. No importa cómo dibujas tus texturas. Debe identificar las texturas para las que desea realizar la detección de colisión y aplicar la detección como se describe en el archivo .htm incluido en la muestra. –

+0

Bueno, dado que dibujo cada textura muchas veces, ¿no tengo que aplicar la colisión más de una vez? Si es así, ¿dónde lo haría? Durante mi código de dibujo> – DMan

0

Puede echar un vistazo a Platformer Starter Kit, muestra cómo organizar mosaicos en un mapa y verificar colisiones.

+0

Miré allí pero no pude encontrar el archivo de clase en el que se produjo la colisión ... – DMan

0

Los rectángulos tienen un método intersects. Si tu jugador está centrado y conoces las coordenadas, recorre los otros texture2ds y busca una intersección antes de desplazarte por el mapa.