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