Comunidad de diseño web y desarrollo en internet online

Detección de colisiones con Bitmap y scroll

Citar            
MensajeEscrito el 29 Oct 2010 10:31 am
Hola a todos.

Este es mi primer mensaje.

Estoy programando un juego de plataformas en AS 3, por diversión y para aprender AS· y Flash. He buscado mucha información sobre el tema y estoy usando tiles. He conseguido hacer un scroll con parallax. Para optimizar, he convertido los tiles que se ven en pantalla a un Bitmap (una vista).

El problema se me plantea al detectar las colisiones. Estoy usando detección de colisiones entre BitmapData, para ello uso la función hitTest:

public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean

Cuando hago el chequeo sin haber realizado scroll funciona correctamente, pero cuando empiezo a mover el protagonista por la pantalla la detección empieza a fallar: detecta la colisión con cierto desplazamiento.

La duda que tengo es el valor de las coordenadas que debo introducir en los puntos de la función hitTest, si deben ser absolutos (incluyendo el desplazamiento del scroll) o relativos a la vista actual.

No se si me habré explicado correctamente.

Un saludo.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

mozilla
Citar            
MensajeEscrito el 29 Oct 2010 02:16 pm
La idea de los tiles es poder usar un mapa que evite usar hitTest, ya que simplemente haces un lookup sobre el mapa para ver si se puede mover o no a esa casilla ... ¿porque usas hitTest y Tiles?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Nov 2010 01:10 pm

solisarg escribió:

La idea de los tiles es poder usar un mapa que evite usar hitTest, ya que simplemente haces un lookup sobre el mapa para ver si se puede mover o no a esa casilla ... ¿porque usas hitTest y Tiles?

Jorge


Tienes razón. Estoy practicando con AS3 y empecé a resolver las colisiones antes de entrar más a fondo con la lógica del engine. Ahora he descubierto que la mecánica es como tu dices. De todas formas creo que me puede ser útil para comprobar colisiones con enemigos. Lo bueno del hitTest es que es mucho más preciso que mediante rectángulos envolventes.

De todas formas ya lo he solucionado: hay que indicar las posiciones absolutas. Me estaba dando fallos porque pasaba posiciones relativas a la vista y las calculaba mal.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

mozilla
Citar            
MensajeEscrito el 03 Nov 2010 02:11 pm
Igual hitTest cuando le das caña falla porque se ejecuta al mismo ciclo de FPS

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.