Robot Maniatico disparando contra una roca en Flash con Action Script – Colisiones

Posted on diciembre 30, 2006. Filed under: Colisiones, Ejemplos Mios, Flash |

He aca el link
Bueno, ya aprendí ha hacer colisiones. esto sirve para hacer una nave personaje enemigo etc que dispara balas proyectiles misiles, en este caso son láser contra una pared.

Solo voy a explicar lo nuevo. Lo que hay en este juego esta en los 4 últimos post.

El código

var contador = 1;
var contaExplocion = 20;
import mx.transitions.Tween;
function disparo() {
    contador++;
    _root.attachMovie(“laser”, “miLaser”+[contador], contador);
    _root[“miLaser”+contador]._y = 86;
    var miDisparo:Tween = new Tween(_root[“miLaser”+contador], “_x”, mx.transitions.easing.None.easeNone, 55, 500, 15, false);
}
function F_explocion() {
    contaExplocion++;
    _root.attachMovie(“explocion”, “explo”+[contaExplocion], contaExplocion);
    _root[“explo”+contaExplocion]._x = 345;
    _root[“explo”+contaExplocion]._y = 90;
}
this.boton.onPress = function() {
    disparo();
};

El problema que tenia, y que me llevo varias horas en resolver era el siguiente. Cuando un dispara un, se crea un movie clip con el nombre miLaser# el # es un numero que va creciendo, miLaser1, miLaser2 miLaser3 así hasta el infinito. Ahora, para hacer que un movie clip cualquiera con el nombre miLaser# colisionara con el muro tenia que colocar  miLaser#.hitTest(muro) pero no encontre la forma de que cada miLaser# se le asignara el nombre correcto para que colisionaran.

Después de mucho pensar soluciones le me prendio el bombillito. El padre de todos los miLaser# es un Movie clip que esta en la biblioteca de la pelicula que se llama laser. De el nacen todos los miLaser#. entonses lo que hice fue colocar el siguiente codigo en el padre

this.onEnterFrame = function() {
    if (this.hitTest(_root.muro)) {
        removeMovieClip(this);
        F_explocion();
    }
};

La razón por la que no había hecho esto antes, es que quería que todo el código estuviera en el primer fotograma bien ordenadito. Pero no consegi hacerlo, la única forma fue esta.

Aun creo que la mejor forma seria con una clase y un método con herencias. Pero me dio pereza estudiar como funcionaban las herencias. aunque no estoy seguro que funcione. En fin. Logre hacer que un bicho dispare y pase algo cuando toque algo.

Make a Comment

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Liked it here?
Why not try sites on the blogroll...

A %d blogueros les gusta esto: