・概要
「敵・地形・
アイテムなどの出現」における共通の処理に関して解説する。
・出現判定用の配列
「出現判定用の配列」を用意する。このゲームでは、
ボードに記述している。
ボードも参照。
ASのファイル:board_load_enemy_item_landform_identify.txt
//敵の出現判定用の配列
_root.enemy_identify=new Array()
//アイテムの出現判定用の配列
_root.item_identify=new Array()
//各種地形の出現判定用の配列
︙
for(i=1;i<=_root.i_landform_name_max;i++){_root["landform_identify_"+_root.landform_name_list[i-1]]=new Array()}
・出現の条件
出現の条件は、それぞれ異なるが、共通する条件もある。
↓アイテムの例。分かりやすくするため、
マスクを適用していない。
「アイテムの出現用のMCのhitrect」と「出現判定用のhitrect(大きな灰色の矩形)」との接触判定がある場合、アイテムが出現する。なお、「出現判定用のhitrect」は、実際のゲーム画面では、非表示にしている。
「_root.item_identify」が「1」の場合は「アイテムが出現している状態」、「0」の場合は「アイテムが出現していない状態(アイテムが消滅した状態)」である。
画面外(右)で次々とアイテムが出現し、アイテムとゼロが接触すると、アイテムが消滅する。
↓「アイテムの出現用のMC」の例。小さい灰色の矩形が「アイテムの出現用のMCのhitrect」。
・「出現」に関する処理のAS
・・概要
ここでは、「アイテムの出現」を例にして解説する。上の動画も参照。
「出現の条件」は既に満たされたものと仮定している。
・・出現用のループ
以下の記述が、「出現用のループ」となる。
ASのファイル:item_appearance.txt
for(i=1;i<=_root.i_item_max;i++){ //アイテムの出現用のループ
︙
}
「i=1」~「i=_root.i_item_max」まで、「1」ずつ加算しながらループを実行している。
・・出現判定用の配列に空きがある場合
出現判定用の配列に空きがある場合に、「出現」の処理を実行する。
アイテムの場合、「配列に空きがある」は「「0」が代入されている」ことを指す。
ASのファイル:item_appearance.txt
if(_root.item_identify[i-1]==0){ //アイテムの出現判定用の配列に空きがある場合
︙
}
配列が全て埋まっている場合は、出現させることができない。一般のゲームにおいても、敵・アイテムなどに関して「出現可能な個数」に最大値を設けていると思われる。
・・「出現」
ASのファイル:item_appearance.txt
_root.board.attachMovie(["item_"+item_name],["item_"+i],_root.depth_item+i) //アイテムを出現させる
・「_root.board」:
ボードのことを指す。
・「["item_"+item_name]」:アイテムの名前。
・「["item_"+i]」:インスタンス名。「i=1」の場合には「item_1」、「i=2」の場合には「item_2」、…などとインスタンス名が設定される。
・「_root.depth_item+i」:深度。参考サイト(
https://hakuhin.jp/as/z.html)。重複しないように、「i」によって異なった数値となるように設定している。
・・位置調整、各種の情報伝達など
位置調整や、各種の情報伝達などを行う。
ASのファイル:item_appearance.txt
item=_root.board["item_"+i] //参照先を変数に保存
item._x=_parent._x;item._y=_parent._y //アイテムの位置調整
item[item_name].number_item=i //アイテムの番号を伝達
・「number_item」:アイテムの番号。
・・出現判定用の配列を埋める
出現判定用の配列を埋める。この処理により、その番号では「出現不可能」となる。
アイテムの場合は、「1」または「2」を代入する。「2」の場合に関しては、
アイテムの出現・消滅の「・敵からのアイテムドロップ」を参照。
ASのファイル:item_appearance.txt
_root.item_identify[i-1]=item_appearance_type //アイテムの出現判定用の配列を埋める(1:通常,2:敵からのアイテムドロップ)
・「_root.item_identify[i-1]=item_appearance_type」:アイテムの出現判定用の配列を埋める。この処理により、その番号では「_root.item_identify[i-1]==0」の条件が満たされないことになる。
・・ループ離脱
「出現」の処理の終了後は、ループを離脱する。
ASのファイル:item_appearance.txt
break //ループを離脱
最終更新:2020年12月12日 10:53