スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ビット演算

ScreenShot_2012_0511_20_47_46.png
昨日から引き続き敵AIの開発にいそしんでいます。
コモンイベントによる距離演算を挟まない方法を考えなければいけないのですが、どう考えても演算用の変数を最低二つ使う必要があります。
しかし、個人的な都合で使用変数は三つ以内に収めたいのです。
でも現在動作管理と探知結果保存の二つ使っている以上、あと一つしか使えません。
そこで考えたのがビット演算です。
両方とも01のデータなので、一つの変数で両方管理してしまえばいいという発想です。
とりあえず二進数一桁目を動作管理、二桁目を探知管理としました。
動作指定内での変数操作では加減代入しかできないため、0~3の数値として扱います。
動作管理をしたいときは変数を±1、探知管理をするときは変数を±2します。
そうすると
0の時、動作管理0、探知管理0。
1の時、動作管理1、探知管理0。
2の時、動作管理0、探知管理1。
3の時、動作管理1、探知管理1。
となるわけです。
それぞれの値も2で割った商と余りなので簡単に出せます。
いろいろ試行錯誤する羽目になりましたが、とりあえず変数三つでコモンイベントなしで正常に動作させることに成功しました。
行き当たりばったりなせいかかなり汚いコードになっているので、その辺り修正したいです。

拍手を下さりありがとうございました。
スポンサーサイト
コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。