Hola. Soy novato en esto de Flash CS6 y AS3.0. Acabo de comenzar a crearme un minijueguito estilo Breakout donde con la pelotita hay que ir destruyendo unos huevitos de pascua en pantalla (Estilo Breakout o Arkanoid).
El juego ya tiene sonido, la pelota rebota ok contra las paredes, techo, raqueta y destruye los huevitos de pascua y también rebota. Ahora las dudas:
a)- ¿Cómo "detectar" que el jugador haya destruido todos los huevos de pascua y que me aparezca una pantalla felicitándolo y saludándolo para las pascuas?
b)- ¿Qué puedo hacer para que cuando la pelota se sale por abajo que se pierda el juego y se reinicie todo el nivel/juego?. Me imagino que tengo que crear una función así:
function perderJuego():void
{
}
El tema sería como reiniciar todo.
Este es el código fuente en ActionScript 3.0:
import flash.events.Event;
var vpx:Number=8;
var vpy:Number=8;
var sReboteTecho:Sound = new sonidoReboteTecho();
var sReboteBarra:Sound = new sonidoReboteBarra();
var sRebotePared:Sound = new sonidoRebotePared();
var sHuevoRoto:Sound = new sonidoHuevoRoto();
var canal:SoundChannel = new SoundChannel();
var vector:Vector.<huevo> = new Vector.<huevo>();
barra.addEventListener(Event.ENTER_FRAME, moverBarra);
pelota.addEventListener(Event.ENTER_FRAME, moverPelota);
crearHuevos();
function moverBarra(e:Event):void
{
barra.x=mouseX-barra.width/2;
if(mouseX < barra.width/2)
{
barra.x=0;
}
if(mouseX > stage.stageWidth-barra.width/2)
{
barra.x=stage.stageWidth-barra.width;
}
}
function moverPelota(e:Event):void
{
pelota.x+=vpx;
pelota.y+=vpy;
if(pelota.x<=0)
{
canal.stop();
canal=sRebotePared.play();
vpx*=-1;
}
if(pelota.x>=stage.stageWidth-pelota.width)
{
canal.stop();
canal=sRebotePared.play();
vpx*=-1;
}
if(pelota.y<=0)
{
canal.stop();
canal=sReboteTecho.play();
vpy*=-1;
}
if(pelota.hitTestObject(barra))
{
canal.stop();
canal=sReboteBarra.play();
calcularAngulos();
}
for(var i:int=0; i<vector.length; i++)
{
if(pelota.hitTestObject(vector[i]))
{
canal.stop();
canal=sHuevoRoto.play();
stage.removeChild(vector[i]);
vector.splice(i,1);
vpy*=-1;
}
}
}
function calcularAngulos():void
{
var posPelota:Number=pelota.x-barra.x;
var porcentajeChoque=(posPelota/(barra.width-pelota.width))-.5;
vpx=porcentajeChoque*10;
vpy*=-1;
}
function crearHuevos():void
{
for(var i:int=0; i<9; i++)
{
for (var j:int=0; j<5; j++)
{
var nuevo:huevo = new huevo();
nuevo.x=i*40+20;
nuevo.y=j*60+50;
vector.unshift(nuevo)
stage.addChild(vector[0]);
}
}
}
Ayuda, please...
Saludos. Nicolás Matías Funtalas