橙さんとモバ友になろう!
日記・サークル・友達・楽しみいっぱい!
-
- 2013/4/11 22:03
- 橙diary その160 改良版
-
- コメント(0)
- 閲覧(1)
-
-
- 以前の日記に書いた時点での斜め坂あたり判定のアルゴリズムでは、ソースコードが非常の汚く
また、重複した処理も多かったため、改良版のアルゴリズムを用意しました。
しかし、今後も斜め坂のアルゴリズムに改良を加えていく可能性は十分にあるし、見返すには
ちょうどいいでしょう。
まず、マップチップの坂の種類を分類してみます。
厳密にいうと「坂」と呼ぶには語弊がありますが、要は傾きがあるかどうかです。
分類してみますと、
・1.平面な坂(FLAT)
・2.右上がりな坂(RIGHT_UP_FLOOR)
・3.左上がりな坂(LEFT_UP_FLOOR)
・4.右上がりな天井(RIGHT_UP_CEILING)
・5.左上がりな天井(LEFT_UP_CEILING)
の5つであることが分かります。(picture1)
ちなみに「そこにマップチップが配置されていない」場合は、衝突するわけがないので
考慮する必要はありません。
それでは次にキャラのどこかであたり判定を行うかです。
斜め坂なしのあたり判定を実装したことがある人の多くは、
キャラのあたり判定を表す長方形(正方形)の辺上の点をとってあたり判定を行っていたかもしれません。
しかし、斜め坂の場合はそれでは都合が悪いのです。
先に結果を言ってしまうと、キャラが坂上に位置している時はキャラの足元の点を確かめるのが一番手っ取り早いのです。
そのため、
もし地面が平らならば爪先立ち、もし坂ならキャラクターの中央でのみあたり判定を取る・・・
実際組んでみれば分かりますが、条件分岐で死んでしまいます。
それに中央に統一することによるデメリットはキャラクターの半身が壁にめり込んでしまうことくらいですので、
それほど、見た目に悪影響を与えるわけではありません。
言いそびれましたが、黒点がマップチップとのあたり判定処理を行われる部分です。
そして、左部分が、私が斜め坂に取り掛かる前のもので、あたり判定は1辺につき3点、計8点
取っていました。(picture2)
ところで、picture1でマップチップの種類を1~5に分類しましたが、これだけでは少し情報不足で
坂の角度が分かっているだけで上り坂か下り坂か判断できないわけです。
とはいってもそのフレームでキャラが左に移動したか右に移動したかで
条件分岐をしてあげればいいのですが(笑)(picutre3)
掲載できる画像数の関係でいったんここで終了です。
次は各チップごとにおける判定のチェック、それから全体の処理の流れを書いていきたいと思います
- 以前の日記に書いた時点での斜め坂あたり判定のアルゴリズムでは、ソースコードが非常の汚く