一直想學 Flash,但有時又超懶 ,剛好今天颱風天,下午放假,稱這個休假機會用 Flash 寫了
個彈球的小程式做練習,用的是 ActionScript 3.0 的語法,參考了以下網站。
是 ActionScript 3.0 Game Programming University 這本書作者開設的網站,書寫的很棒,
網站有影音教學喔,也可以下載程式原始碼。
彈球畫面
彈球程式
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
全站熱搜
留言列表