一直想學 Flash,但有時又超懶 ,剛好今天颱風天,下午放假,稱這個休假機會用 Flash 寫了

個彈球的小程式做練習,用的是 ActionScript 3.0 的語法,參考了以下網站。

http://flashgameu.com/

是 ActionScript 3.0 Game Programming University 這本書作者開設的網站,書寫的很棒,

網站有影音教學喔,也可以下載程式原始碼。

 

彈球畫面

2010-09-01_204042

彈球程式

package{
    
import flash.display.*;
import flash.events.*;
import flash.utils.getDefinitionByName;
import flash.utils.Timer;
 
public class Game extends MovieClip{
    
    var ball:MovieClip;
    var board:MovieClip;    
    var numX:Number=10;
    var numY:Number=10;        
    
    public function Game(){
        
        //停止影格播放
        stop();                        
        
        ball = new Ball();
        ball.x=250;
        ball.y=20;
        addChild(ball);
                
        board = new Border();
        //將border 置於 stage 中央
        board.x=stage.stageWidth/2;
        board.y=305;
        addChild(board);
        
        //ENTER FRAME  事件
        addEventListener(Event.ENTER_FRAME,GameLoop);        
        
    }
        
    public function GameLoop(e:Event):void{
                
        //球的 X 坐標小於 15 則 numX =10 (球向右反彈)    
        if(ball.x<15)
            numX=10;
            
        //球的坐標大於 stage 寬度 - 20 則 numX = -10 (球向左反彈)    
        if(ball.x>stage.stageWidth-20)
                numX=-10;
        
        //球的 Y 坐標小於 15 則 numX = 10 (球向下掉落)
        if(ball.y<15)
            numY=10;
        
        //碰撞偵測, border 與 ball 相碰撞,則 numY = -10 (球反彈回去)
        if(ball.hitTestObject(board)){                                                            
                numY=-10;                
        }        
        
        //判斷 ball 是否遺失(遊戲結束)
        if(ball.y>stage.stageHeight+20){
            
            //跳到遊戲結束影格
            this.nextFrame();
            
            //移除 ENTER FRAME 事件
            removeEventListener(Event.ENTER_FRAME,GameLoop);
            
            //移除 DisplayObjectContainer 中的 ball 與 board 物件 
            removeChild(ball);
            removeChild(board);
            
        }else{
            
            //設定 ball 座標
            ball.x=ball.x+numX;
            ball.y=ball.y+numY;
            
            //board 跟著滑鼠的 X 座標移動
            board.x=mouseX            
            
        }
                
        
    }
    
 
}
}

 

檔案下載:ball.rar

參考網站:http://flashgameu.com/

iammic 發表在 痞客邦 PIXNET 留言(0) 人氣()