范例接寶游戲中人物類的CLASS講解
首先請下載源文件:CLASS.rar
下載好,打開一看,如下:
我把.as類文件分門別類的存放,這樣看上去清晰,更重要的是別人看了會覺得我很專業。
.as具體意義看文件名就應該能知道,這里要說的是,一般默認的規則,放CLASS目錄用小寫字母命名,.as的類文件名的首字母用大寫
這節詳細講下人物類的CLASS,首先是Player_1.as,人物小李的類
首先去源文件里點進人物1的MC,看下結構。
由兩幀組成,一是“stand”,二是“run”
人物上面有一層有個圓形的MC,我把它命名為hit,靠這個mc來做碰撞檢測。
金幣里面也有這個名叫hit的MC,我判斷人物和金幣是不是相碰是用這個語句的: 金幣MC.hit.hitTest(人物MC.hit)
傳統碰撞檢測都這么做。
又開始扯話題了,馬上拉回來
現在拿出Player_1.as的代碼
class player.Player_1 extends MovieClip {
private var hit:MovieClip; //人物MC里出現的東西都要聲明,hit這個MC也不例外
public var speed:Number;//這個是人物移動的速度
//構造函數
function Player_1() {
init();//初始化的人物打包在init()里了
}
//隱式設置-獲取法
public function set _speed(sss:Number):Void {
speed = sss;
}//可供外界用MC._speed=X修改speed的數值
public function get _speed():Number {
return (speed);
}//可供外界讀取speed的數值
//私-公有方法
//---初始化方法---
private function init() {
_y = 310;
_x = 300;//人物來到舞臺后的初始位置
speed = 6;//移動速度
onEnterFrame = Move;//人物來到舞臺后就開始onEnterFrame,內容見Move這個function
}
//---人物移動---
private function Move() {
if (Key.isDown(37)) {
_xscale = -100;
_x -= speed;
this.gotoAndStop("run");
} else if (Key.isDown(39)) {
_xscale = 100;
_x += speed;
this.gotoAndStop("run");
} else {
this.gotoAndStop("stand");
}
//以上是左右鍵的定義,應該看得懂吧?
if (Key.isDown(38)) {
speed = 12;
} else {
speed = 6;
}
//以上是上鍵的定義,按著后速度就加倍咯
range();//范圍定義,內容見下面
}
//---限定移動范圍---
private function range() {
if (_x>540) {
_x = 540;
}
if (_x<10) {
_x = 10;
}//不讓人物出界
}
}
這個CLASS文件就是這樣。按照前幾節我說的結構,鳥鳥們對照這看下。能不能看懂。這里要說的是,第一行的player.Player_1,其中前面的player表示路徑“.”就相當于"/",player.Player_1就相當于player/Player_1,關聯到MC的時候也要這么寫的。
小李的CLASS寫完了
然后寫鳴人的CLASS
新聞熱點
疑難解答