Comunidad de diseño web y desarrollo en internet online

Problema con un boton

Citar            
MensajeEscrito el 20 May 2011 07:37 am
Hola tengo un problema con mi juego hecho en AS3. De momento lo que tengo funciona correctamente excepto un boton que hay al final del juego, que al darle vuelve a empezar el juego pero la bola con la que se juega aumenta y mucho su velocidad.

Tengo tambien que ecir que este codigo me trae una serie de problemas, como que al cambiar de frame, me de error "typeerror #1009, o la funcion "stop();" no me funcione, osea la ignora.

Llevo arrastrando esos errores mucho tiempo pero como soy novato y al reproducir el juego no me lanza ningun error no se corregirlos.

Os dejo el codigo del juego propiamente, y del marcador del juego.

Juego:

Código ActionScript :

var velocidadx:Number = 15
var velocidady:Number = 15



Bola.addEventListener(Event.ENTER_FRAME, rebote)

function rebote(e:Event):void{
   
   Bola.x += velocidadx;
   Bola.y += velocidady;
   
   if((Bola.hitTestObject(Barra1)) || (Bola.hitTestObject(Barra2))) 
       
   {
      velocidadx *=-1;
   }
      
   if((Bola.hitTestObject(Limitearriba)) || (Bola.hitTestObject(Limiteabajo))) 
   
   {
      velocidady *=-1;
   }

}

stage.addEventListener(MouseEvent.MOUSE_MOVE, mover);

function mover(event:MouseEvent):void
{
       Barra1.y = mouseY
      Barra1.y = mouseY

}

stage.addEventListener(KeyboardEvent.KEY_DOWN, mover2);

function mover2(event:KeyboardEvent):void
{
       switch (event.keyCode)
      {
      case Keyboard.W:
      Barra2.y -= 20;
      break;
   
        case Keyboard.S:
      Barra2.y += 20;
      break;
}

}


Marcador:

Código ActionScript :

var Puntuacion1:Number = 0
var Puntuacion2:Number = 0

stage.addEventListener(Event.ENTER_FRAME, marcador)

function marcador(e:Event):void
{
   
   if (Bola.x <= 0)
   {
    Bola.x = 259;                                 
    Bola.y = 184;
     Puntuacion2 += 1;
    Marcador2.text = Puntuacion2.toString();
    
   }



    if (Bola.x >= stage.stageWidth)
     {
     Bola.x = 259;                                 
     Bola.y = 184; 
     Puntuacion1 += 1;
     Marcador1.text = Puntuacion1.toString();
     
    }
    
    if ((Puntuacion1 == 5) || (Puntuacion2 == 5)){
       
       gotoAndStop(2);
    }
    
    
    
    }
    


Boton de volver a empezar:

Código ActionScript :

BotonInicio.addEventListener(MouseEvent.CLICK, inicio);
 
function inicio(event:MouseEvent):void
{
    gotoAndPlay (1);
}


Resumen: No me funciona bien el boton, no va "stop(); y da errores al cambiar de frame.

Por Josel567

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 May 2011 01:41 pm
Dos tips:

- Cuando termina tu juego debes borrar los eventListener para no agregarlos dos veces
- Debes reiniciar todas las variables que tengan que ver con el juego en si

Y otra cosa de índole mas general> da errores no es una descripción, pon que errores y donde

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 May 2011 02:07 pm
El error es typeerror #1009 al cambiar de frame y no se como se reinicializan las variables ni como se eliminan los listener, pero gracias.

Por Josel567

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 May 2011 02:09 pm
Si creo un listener así

loquesea.addEventListener(MouseEvent.CLICK, mifuncion)

Lo quito asi

loquesea.removeEventListener(MouseEvent.CLICK, mifuncion)

Si le doy valor a una variable así

puntaje = 10

La reinicializo así

puntaje = 0

Usualmente los juegos tienen una rutina de reinicialización donde se hace todo esto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 May 2011 02:19 pm
Lo acabo de probar y el typerror continua, lo he hecho asi:

stage.removeEventListener(MouseEvent.MOUSE_MOVE, mover);

Asi con todos los listeners y las variables como tu dices pero que va, cuando hago eso me deja de funcionar el boton de reiniciar.

Tampoco se muy bien donde borrarlos en el frame del marcador o del juego?

Gracias!

Por Josel567

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 May 2011 03:24 pm
Los tienes que borrar cuando termina el juega ... y no remuevas el del botón de reiniciar porque sino no te funcionará ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.