A ver, la cuestión es que tras el gol, solo consigo volver la pelota a la posición inicial reubicandola, y detenerla estableciendo la velocidad en 0.
Después no consigo que reaccione nuevamente al click.
Pego todo el código a ver si le damos solución.
Código ActionScript :
import flash.events.*
var velocidadBolaX:int = new int(-4);
var velocidadBolaY:int = new int(-2);
//var velocidadX:int = new int(-4);
//var velocidadY:int = new int(-2);
var velocidadBarraCPU:int = new int(3);
var puntosJugador1:int = new int(0);
var puntosCPU:int = new int(0);
stage.addEventListener(MouseEvent.CLICK, inicioHandler);
function inicioHandler(event:MouseEvent)
{
bola.addEventListener(Event.ENTER_FRAME, bucleHandler);
stage.removeEventListener(MouseEvent.CLICK, inicioHandler);
function bucleHandler(e:Event)
{
bola.x += velocidadBolaX;
bola.y += velocidadBolaY;
if(bola.x <=bola.width/2)
{
bola.x = bola.width/2;
velocidadBolaX *= -1;
puntosCPU++;
actualizarMarcadorHandler();
resetHandler();
}
else if(bola.x >= stage.stageWidth-bola.width/2)
{
bola.x = stage.stageWidth-bola.width/2;
velocidadBolaX *= -1;
puntosJugador1++;
actualizarMarcadorHandler();
resetHandler();
}
if(bola.y <=bola.height/2)
{
bola.y = bola.height/2;
velocidadBolaY *=-1;
}
else if(bola.y >= stage.stageHeight-bola.height/2)
{
bola.y = stage.stageHeight-bola.height/2;
velocidadBolaY *=-1;
}
barraJugador1.addEventListener(MouseEvent.MOUSE_DOWN, arrastrarHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, soltarHandler);
function arrastrarHandler (MouseEvent)
{
barraJugador1.startDrag(true, new Rectangle (40, 0+barraJugador1.height/2, 0, 768-barraJugador1.height));
}
function soltarHandler (MouseEvent)
{
barraJugador1.stopDrag();
}
if(barraJugador1.y-barraJugador1.height/2 < 0)
{
barraJugador1.y = barraJugador1.height/2;
}
else if(barraJugador1.y + barraJugador1.height/2 > stage.stageHeight)
{
barraJugador1.y = stage.stageHeight - barraJugador1.height/2;
}
if(barraCPU.y < bola.y - 10)
{
barraCPU.y += velocidadBarraCPU;
}
else if(barraCPU.y > bola.y + 10)
{
barraCPU.y -= velocidadBarraCPU;
}
if(barraCPU.y - barraCPU.height/2 < 0)
{
barraCPU.y = barraCPU.height/2;
}
else if(barraCPU.y + barraCPU.height/2 > stage.stageHeight)
{
barraCPU.y = stage.stageHeight - barraCPU.height/2;
}
if(barraJugador1.hitTestObject(bola) == true)
{
if(velocidadBolaX < 0)
{
velocidadBolaX *= -1;
velocidadBolaY = reboteBolaHandler(barraJugador1.y, bola.y);
}
}
else if(barraCPU.hitTestObject(bola) == true)
{
if(velocidadBolaX > 0)
{
velocidadBolaX *= -1;
velocidadBolaY = reboteBolaHandler(barraCPU.y, bola.y);
}
}
}
puntosJugador1 = 0
puntosCPU = 0
}
function reboteBolaHandler (barraY:Number, bolaY:Number):Number
{
var velocidadY:Number = 5 * ((bolaY-barraY)/25);
return velocidadY;
}
function actualizarMarcadorHandler()
{
marcadorJugador1.text = ("Jugador 1: " + puntosJugador1)
marcadorCPU.text = ("CPU: " + puntosCPU)
}
function resetHandler()
{
bola.x = stage.stageWidth/2;
bola.y = stage.stageHeight/2;
// return bucleHandler;
}