Monthly Archives: 10月 2005 - Page 3

ヒットテスト だめぇじ

スケルトンアックスムービークリップに記述したスクリプト丸写し
—-
onClipEvent(load){
HP = 5;
}
onClipEvent(enterFrame){
if(HP > 0){
if(this.hitTest(this._parent.deathknight.attack_top.hitter)){
this.gotoAndStop(“nockback_bottom”);
this._parent.chatbox.supermes +=”スケルトンアックスに(ダメージ表示)のダメージを与えました。”+”r”;
this._parent.chatbox.supermes.scroll += 2;
HP -= 1;
} else if(this.hitTest(this._parent.deathknight.attack_bottom.hitter)){
this.gotoAndStop(“nockback_top”);
this._parent.chatbox.supermes +=”スケルトンアックスに(ダメージ表示)のダメージを与えました。”+”r”;
this._parent.chatbox.supermes.scroll += 2;
HP -= 1;
} else if(this.hitTest(this._parent.deathknight.attack_left.hitter)){
this.gotoAndStop(“nockback_right”);
this._parent.chatbox.supermes +=”スケルトンアックスに(ダメージ表示)のダメージを与えました。”+”r”;
this._parent.chatbox.supermes.scroll += 2;
HP -= 1;
} else if(this.hitTest(this._parent.deathknight.attack_right.hitter)){
this.gotoAndStop(“nockback_left”);
this._parent.chatbox.supermes +=”スケルトンアックスに(ダメージ表示)のダメージを与えました。”+”r”;
this._parent.chatbox.supermes.scroll += 2;
HP -= 1;
}
}
}
onClipEvent(enterFrame){
if (HP == (0<99)) { HP = "dead_delay"; } else if (HP == "dead_delay"){ this._parent.chatbox.supermes +="<font color="#FFFF99">スケルトンアックスを倒しました。</font>"+"r"; this._parent.chatbox.supermes +="<font color="#FFFF99">アデナ(数)、EXP(数)を取得。</font>"+"r"; this._parent.chatbox.supermes.scroll += 2; HP = "mobdead"; } } onClipEvent(enterFrame){ switch(HP){ case "mobdead" : this.gotoAndStop("dead"); break; } } ---- ifだと処理がループしてるっぽかったんで、死亡動作にswitch導入。意味無ぇ・・・? 後duplicateMovieClipでアックスクリップコピーして配置してみたら 攻撃を受けた後、一回だけのけぞるハズがそのクリップ内で(のけぞる動作)延々ループ・・・ また壁っす。ウォールっす。

HP概念

8dc4cd25.JPG思ったよりすんなりと。
とりあえずHP5にしてヒットする度にHP1減るようにしてみました。
後々武器の攻撃力やら補正値やら入れれるようにしますです。
アックス君が死んだ時に死亡モーション(バラバラになってるアレ)出した後、消えるようになってるんですが、何も無いフレームまで進めてthis.stop();でただ単にストップかけてるだけです。
何かコレだと数増えた時、メモリ食って動作重くなるんじゃないかと・・・
でもまぁ悩んでてもしゃーないんで、いつもどおりこのままで行ってまいます。
次は
敵の反撃と
自HP連動表示です。

攻撃 ヒットテスト

ad4ff1c0.JPGちと分かりづらいです。
攻撃判定、暫定的ですがなんとかこぎつけました。
イマイチドットシンタックスが分からん。
どう記述しても拾ってくれるらしーっスけど。
次でた問題は、インスタンスをコピーして配置すると
オリジナルの方に攻撃当てると、コピーした方が反応してしまうこと。
コピーした方に攻撃しても反応が無いこと。
インスタンスリンケージ?しなさい!らしいです。リファレンス的に。
これはまぁOKなんですが、重なり順が致命的な問題かなぁ・・・
敵より下に居れば、プレイヤーの重なりが敵の上で、
敵より上に居れば、プレイヤーの重なりが敵の下になる 感じで
座標の辺りのスクリプトを細々組めば解決できそうっすけど、
時間かかりそうなんで、後回し後回し。一休み一休み。
次はHPの概念実装。
これでようやくRPGっぽくなるぜ