イベントとオーバーライド
媒介変数を使った当たり判定を作ったのは良いんだけど、今使ってるライブラリでデモプログラムを作ると床で止まらない。まぁ原因は分かってるんだけども。
実は今ライブラリには(その頃覚えたからであろう)イベントを多用してあって、キャラクターなどの画面要素も例外ではない。
更新処理はUpdateRequestedイベント、描画処理はRenderRequestedイベントという感じ。
するとある不都合が起こるわけです。処理の順番を触れない!
イベントだから追加順。つまりは継承順になるわけですねぇ。
まぁこのせいで冒頭の問題が発生しているわけです。
- 速度設定
- 座標更新
- 当たり判定
- 速度修正
という順番になっていたので、次のフレームの速度設定によって速度修正の意味が無くなってしまったというわけ。
そういうわけでイベントはゲームに向いてないんだろうなぁ。と思った。
単なるオーバーライドなら基底クラスのメソッド呼ぶ場所によって直近の順番は自由にできるので、冒頭の問題もすんなり解決だろう。
というわけでオーバーライドする方向に書き換える・・・めんど。