[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
お絵描き&ゲーム制作好きの ひとりごと日記
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
主人公が敵から攻撃を受け「のけぞりモーション」中になった場合、
ふたたびその攻撃判定に触れることがあっても
ダメージを受けないようにする。
ちなみに敵は同じ種類の型が複数存在するものと考える。
■パターンA:主人公を含め、味方が複数いる場合:
①敵が攻撃をした際、それが何度目の攻撃なのかを記憶する
②主人公が攻撃を受けた際に
・どの敵から攻撃を受けたか
・何度目の攻撃を受けたか
を調べて、配列に記憶する
③主人公は同じ敵&同じ回数の攻撃は受け付けないものとする
■パターンB:必ず味方が主人公のみの場合(非推奨)
①主人公が敵から攻撃を受けた際、その当たり判定を消す
現在製作中のゲームの敵の動作についてのお話です(・ω・人)
自分用のメモのようなモノなので内容がちょっと意味不明かもしれません。
現在敵は左右へ動くだけですが、主人公が近づくと攻撃を行うように設定しようと思います。
「距離が近くても壁を挟んでいる状態であれば攻撃を行わない」という設定も加えられたら
ベストなのですが、処理が重くなると思うので単に距離が近いと攻撃モーションに入るように
したいと考えております(・ω・`)
敵の攻撃モーションにまつわるコード:
①「攻撃準備判定」を作る。同時に専用の配列も用意する
②敵を作成時に「攻撃準備判定」も同時にaddChildする
③「攻撃準備判定」は常に敵と重なる状態にx位置、y位置を調整する
④主人公と「攻撃準備判定」が重なるとdelayをデクリメントする
⑤delayが0になると敵が攻撃モーションに入る
⑥攻撃モーションが終了すると、delayを増加させる
⑦敵が死亡した場合、同時に「攻撃準備判定」をremoveChildする
更に欲を言うとこんなシステムも欲しいなーとか考えてます。
敵が主人公を発見して戦闘態勢に入るコード:
①「発見判定」を作る。同時に専用の配列も用意する
②一定間隔で「発見判定」を、敵本体から発射させる
③「発見判定」は、一定時間飛び続けると途中で消滅する
(↑視野が広い敵ほど、消えるまでの時間が長い)
④「発見判定」はブロック(壁)を貫通することは出来ない
⑤「発見判定」が主人公に接触した場合、敵は戦闘態勢に入る
■環境
・スタート地点(主人公の初期位置)はマップの左端とする
・主人公は基本的に右方向へ進む
・現在の予定では縦スクロールはないものとする
■変数を定義する
・画面が左端、中間(左端でも右端でもない状態)、
右端の状態を表すint型の変数を作る。変数名はSCXとする。
変数名は「Screen X(横のスクリーン)」の略。
・マップ上の主人公のx座標を表すdouble型の変数を作る。
変数名はscroll_xとする。
(↑画面中の主人公のx座標とは異なる)
■変数の役割、意味
・SCXは-1が左端、0が中間、1が右端の状態を意味する。
・scroll_xは主人公のx軸と同じで、主人公が右へ移動するたびに増加する。
ただし、SCXが0の場合は主人公のx座標は画面の中央に固定させる。
・SCXが-1の場合に(主人公のx座標 > 画面の幅÷2)を満たした場合、
SCXに0を代入する。
・SCXが0の場合、scroll_xが決められた数値に達すると、SCXに-1か1を代入する
・SCXが1の場合に(主人公のx座標 < 画面の幅÷2)を満たした場合、
SCXに0を代入する。