Comunidad de diseño web y desarrollo en internet online

Problema al tratar de hacer disparos(juego)

Citar            
MensajeEscrito el 11 Nov 2009 04:54 pm
Holas, soy nuevo en as3 y tengo una duda como puedo hacer para que cuando aprete space salga una bola nueva cada vez? pq dispara pero cuando vuelvo apretar space vuelve la misma bola al inicio y asi, solo ahi unabola....

aqui mi codigo:
Clase principal

Código ActionScript :

   public class Waves extends Sprite
   {
      public var bola:Sprite;
      public var ball:Ball;
      public var particle:Array=new Array();
      public var key:KeyObject;
      public function Waves() 
      {
            init();
      }
      public function init():void {
         
         key = new KeyObject(stage);
         bola = new Sprite();
      
         
      
         addEventListener(Event.ENTER_FRAME, play);
      }
   
      public function shot():void {
      
      
      
         if (key.isDown(Keyboard.SPACE)) {
         
         ball = new Ball(bola);
         addChild(ball);
      
          particle.push(ball);
                
            }
         
      }   
      
   
      public function play(e:Event):void {
      
   
         
         shot();
      
         for (var i:uint = 0; i < particle.length; i++) {
         ball = particle[i];
         particle[i].update();
      
         }
         }
      }

}


Clase Ball:

Código ActionScript :

public class Ball extends Sprite
   {
      public var bo:Shape= new Shape();
      public function Ball(bo:Sprite) 
      {
      
         bo.graphics.beginFill(0x000000);
         bo.graphics.drawCircle(0, 0, 10);
         bo.graphics.endFill();
         addChild(bo);
      }
      
      public function update():void {
         
         this.x++;
      
   }

}
}

Si alguien me puede mostrar mi error.
Muchas gracias
saludos.

Por kamirox

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Nov 2009 03:42 pm
No declares ball como propiedad de la clase:

public var ball:Ball;

hazlo dentro del método shot:

Código ActionScript :

public function shot():void { 
         if (key.isDown(Keyboard.SPACE)) { 
                   var ball:Ball = new Ball(bola); 
          ...


Haz un cast en ves de una asignación en el método play:

Código ActionScript :

for (var i:uint = 0; i < particle.length; i++) { 
         Ball(particle[i]).update(); 
 }


Transforma todo en privado, luego haz público solo lo que sea estrictamente necesario

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.