ユニット管理との格闘@HIROBA

〜本日のお品書き〜

  1. キャラクター同士、キャラクタxボールの移動可能か判定する手順を再考
  2. ボールの跳ね返り処理

はい、昨日のキャラ同士、キャラクタとボールの衝突処理手順を再考しています。

今のところ、以下の手順です。


1、キャラクタと重なっていないか判定→YES:重なっているキャラクターから離れる。(処理終了)
↓No
2、キー入力による移動座標を仮保持。

3、 2の座標がキャラクターor壁と重なっていないか判定→Yes:重なっている場合、保持した座標は無効
↓No
4、移動座標を適用

5、ボールと重なっていないか判定→No:(処理終了)
↓Yes
6、ボールを移動し、移動座標を仮保持。

7、ボールの移動先が壁と重なっている場合、移動座標は無効(処理終了)

8、ボール移動座標を適用



こんな感じです。


んー。。ここで問題が。ユニット管理クラスの関数でけっこう揉めてます。


判定する関数にインスタンスを指定するか、判定に必要な値を設定するか、配列IDを指定するか…迷うなー
IDが一番スマートっぽい感じがするので、その方向で。


手順を上に書いてみたけれども、結構難しい…
関数の管理(?)が難しいです。ユーザー関数の仕様と、どの関数を使えばいいのかとの間でけっこう揉めてます。


(ユニット管理が微妙なので、関数の仕様を変更。手順を変更。んー。微妙。また関数の仕様変更、手順を変更。んー)この繰り返し。
ユニット管理方法が変わって、他の関数仕様も変わって〜んーひとつづつ決めて行こう。


ふと、気付きました。このボール、画面端まで行くと持ってこれなくなるOrz