2017-06-12 1 views
0

Je suis débutant chez Action Script 3 et je suis en train de développer un jeu basique de balle rebondissante. Le jeu fonctionne parfaitement avec une balle qui rebondit et change de direction avec un clic de souris, ainsi que sa couleur. Cependant, maintenant je souhaite faire certains changements, tels que, tandis que le jeu est en cours; Je voudrais que la taille de la balle soit minuscule et qu'au fur et à mesure que le jeu se joue, la balle se développe. J'ai partagé mon code ci-dessous, ce qui est spécifiquement, je suis obligé de faire à ce stade. Aucune suggestion?Changer la taille d'un objet dans Action Script 3 gaming

package { 

import flash.display.MovieClip; 
import flash.events.Event; 
import flash.events.MouseEvent; 



public class Main extends MovieClip { 
    private var ball:Ball = new Ball(); 
    private var ballSpeed, cf: int; 
    private var isLeft, isUp, isLand: Boolean; 

    public function Main() { 
     // constructor code 
     createBall(); 
     ballSpeed = 5; 
     isLeft = false; 
     isUp = false; 
     isLand = true; 
     cf = 1; 
     stage.addEventListener(Event.ENTER_FRAME, frameHandler); 
     stage.addEventListener(MouseEvent.CLICK, changeDirection); 

    } 

    private function changeDirection(m:MouseEvent){ 

     if(isLand){ 
      isLand = false; 
     } else { 
      isLand = true; 
     } 

     cf += 1; 

     if (cf > ball.totalFrames){ 
      cf = 1; 
     } 
     ball.gotoAndStop(cf); 
    } 

    private function createBall(){ 
     ball.x = stage.stageWidth * .5; 
     ball.y = stage.stageHeight * .5; 
     addChild(ball); 





    } 




    private function frameHandler(e:Event){ 

    if(isLand){ 
      if((ball.x + ball.width * .5) < stage.stageWidth && !isLeft) { 
       ball.x += ballSpeed; 
       } 
      if((ball.x + ball.width * .5) >=stage.stageWidth) { 
       isLeft = true; 
      } 
      if((ball.x - ball.height * .5) > 0 && isLeft) { 
       ball.x -= ballSpeed; 
      } 
      if((ball.x - ball.width * .5) <= 0){ 
        isLeft = false; 
     } 
    } 
    if(!isLand){ 
      if((ball.y + ball.height * .5) < stage.stageHeight && !isUp){ 
      ball.y += ballSpeed; 
      } 
      if((ball.y + ball.height * .5) >= stage.stageHeight){ 
       isUp = true; 
      } 
      if((ball.y - ball.height * .5) > 0 && isUp){ 
       ball.y -= ballSpeed; 
      } 
      if((ball.y - ball.width * .5) <= 0){ 
       isUp = false; 
      } 
     } 
    } 

} 

}

Répondre

0

Vous devez ajouter quelques lignes:

private function frameHandler(e:Event):void 
{ 
    ball.scaleX += 0.01; 
    ball.scaleY = ball.scaleX; 

Ainsi, chaque image la balle augmentera de 1%, donc à la cadence de 25 la balle être deux fois plus gros en 4 secondes, trois fois plus gros en 8 secondes, et ainsi de suite.