domingo, 28 de agosto de 2011

Dectector de Coliciones As. Flash !

Es importante el por qué es tan importante saber colisionar en un juego. Colicionar es tocar un objeto con otro y producirse una interacción. Un ejemplo : Mario toca a un goomba y muere, la interracción que hiso mario al tocar al enemigo fue morir y el juego se resetea hasta un cierto nivel. En Flash Existe una función básica que detecta la colición de objetos, el famoso "hitTest()" esta pertenece a la clase "MovieClip". Al detectar una colición esta envia un valor "True" (verdadero) y al no detectar nada esta mantiene un "False" falso. para realizar una acción al colicionar un objeto es tan sencillo como colocar una condición si este fuese True!.
Comenzemos !
-Abrimos nuestro Flash , elegimos al opción As2 (puede ser As3 pero tienes que saber pocisionar los objetos(coordenadas) y otras cosas. 
 El objetivo será que al tocar el cuadrado con otro este avanze a otra escena. 
- Dibujamos dos objetos (en la foto dos cuadros) y los convertimos en simbolos Clip de película.





- luego instanciamos los dos clip de películas (simbolos) .. ¿Qué es instanciar? Es darle un nombre al objeto para que este pueda ser llamado a través de los códigos . es este caso le pondremos "a" al cuadrado verde y "b" al cuadrado morado. 

- Ahora tendremos que insertar códigos a los símbolos ya instanciados y a los fotoprogramas que estan en él.
 Al primer fotoprograma le damos click con el botón derecho y seleccionamos acciones , y en la primera línea de código escribimos stop(); (esto es para que el fotoprograma no siga avanzando y se quede solo en ese). en la línea de tiempo agreguemos otro fotoprograma con cualquier imagen .



- Luego nos dirigimos al símbolo "a" y con el click derecho le damos "acciones" y le agregamos las siguientes líneas de códigos:

Al rectangulo A le ingresan este código:

onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_x -= 5;
}
if (Key.isDown(Key.RIGHT)) {
_x += 5;
}
if (Key.isDown(Key.UP)) {
_y -= 5;
}
if (Key.isDown(Key.DOWN)) {
_y += 5;
} //este es la parte donde configuras tu rectángulo para que se mueva (tutorial en el articulo anterior)
//esta parte se detecta la colisión con rectangulo B
if(this.hitTest(_root.b)){
//en esta parte se avanza un fotograma en la pelicula.
_root.nextFrame();
}
}

  Espero que le haya sido útil este material, quisas no es nuevo, pero creo que es necesario publicarlo para comenzar. luego escribiré tutoriales más complejos en donde usaremos librerias externas de flash para programar videojuegos simulando la realidad !

No hay comentarios:

Publicar un comentario