・概要

 「敵・地形・アイテムなどの出現」における共通の処理に関して解説する。

・出現判定用の配列

 「出現判定用の配列」を用意する。このゲームでは、ボードに記述している。ボードも参照。

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」との接触判定が挙げられる。

↓アイテムの例。分かりやすくするため、マスクを適用していない。

 「アイテムの出現用の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){	//アイテムの出現判定用の配列に空きがある場合}
 

 配列が全て埋まっている場合は、出現させることができない。一般のゲームにおいても、敵・アイテムなどに関して「出現可能な個数」に最大値を設けていると思われる。

・・「出現」

 上記の条件が満たされた場合には、MCを「出現」させる
 attachMovieに関する参考サイト(https://hakuhin.jp/as/movieclip.html#MOVIECLIP_08)。

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