Un pequeño juego llamado Space Invaders

1. CREAR LAYERS Y ELEMENTOS GRAFICOS

Creamos 4 layers en el siguiente orden:

Dibujamos 4 objetos gráficos, los desplazamos en el layer correspondiente y les damos un nombre de instancia:

2. PROGRAMACIÒN LASER

A los laser damos un movimiento autónomo hacia arriba. Si están fuera del juego los borramos. Añadimos el siguiente código al laser:

onClipEvent(enterFrame){
this._y = this._y-5;
if (Number(this._y)<0) {
removeMovieClip("");
}
}

3. PROGRAMACIÒN NAVE

Queremos utilizar la nave como cursor (desplazándolo con el ratón). Añadimos el siguiente código a la nave:

onClipEvent(enterframe){
startDrag("",true);
}

4. PROGRAMACIÒN BOTON

Para enterarnos si el nave dispara situamos un botón sobre todo el documento. Apretando el botón del ratón copiamos el moví clip laser. Añadimos el siguiente código al botón:

on (press) {
nave_x = getProperty("/nave", _x);
nave_y = getProperty("/nave", _y);
duplicateMovieClip("/laser", "laser" add n, n);
setProperty (laser add n, _x, nave_x);
setProperty (laser add n, _y, nave_y);
n = Number(n)+1;
setProperty ("", _x, "0");
setProperty ("", _y, "0");
}

5. MEJORACIÓN NAVE

Si queremos que la nave desaparezca si movemos el ratón fuera del juego lo hacemos invisible. No es necesario en este ejemplo pero utilizado muchas veces usando otra gráfica para el cursor. Añadimos este código a la nave:

onClipEvent(enterframe){
startDrag("",true);
if (_root.nave._x < 0 || _root.nave._y < 0 || _root.nave._x > 250 || _root.nave._y > 250)
_root.nave._visible = false;
else
_root.nave._visible = true;
}

6. PROGRAMACIÒN ALIEN

Para que el alien tiene un movimiento autónomo añadimos el siguiente código al alien:

onClipEvent(enterFrame){
this._x += 5;
if (this._x > 400){
this._x = 0;
this._y += 20;
}
}

Cuando el alien choque con un laser bajamos el valor de su canal alpha y conseguimos que cada disparo lo hace menos visible. Una vez invisible(=destruido) empezamos el juego de nuevo. Para comprobar si el alien ha sido alcanzado por el laser añadimos este código al laser:

onClipEvent(enterFrame){
this._y = this._y-5;
if (Number(this._y)<0){
removeMovieClip("");
}
if (this.hitTest(_root.alien)){
removeMovieClip("");
_root.alien._alpha -= 20;
if (_root.alien._alpha <= 20){
_root.alien._x = 0;
_root.alien._y = 10;
_root.alien._alpha = 100;
}
}
}