アクティブボタン

久しぶりの画像付きの日記です。ってか、開発関係のことを書くのが久しぶりですね。

 15・16と筑波大学が停電で会社の研究室が学内にあるため、昨日今日とお仕事のプログラミングはお休みして、特別演習のLoFをいじっていました。

 今回のLoFは全操作をマウスだけで行います。もちろん、戦闘時の複雑な操作もすべてマウスです。画面上に表示されるボタンをクリックして技を使用したり、ジャンプしたり、移動したり。他にも、敵の詠唱をキャンセルする機能やそのうち(特別演習中にはやらないかもしれませんが)追加スキルみたいな連続技の機能もつけたいと思います。

 で、戦闘中の複雑な操作を出来るだけ正確に素早く行うために、今回はアクティブボタンという機能を作りました。これが学校の課題のメイン部分です。画面上のアイコンが全てアクティブボタンとして設計されていて、マウスカーソルを合わせようとすると、アイコンがカーソルに寄ってきてくれます。このマウスの行き先推定が課題の中心です。ゲーム中の画面で限定的な条件なので、やってること自体はそんなに難しくないのですが、どのポインタを狙っているのかを判定するのが意外と難しいものです。

 いくらか方法を試してみたのですが、大体僕の思い通りのアイコンを認識してくれるようになりました。各状況ごとに、アイコンの優先度というものをつけていて、それを動的に推定する機能が付けばもう少し良くなる気がしますが、とりあえずアクティブボタンの調節はこれくらいでいいでしょう。

 と、言うことで、LoFの操作の中核が固まったので、そろそろゲームシステムを整えてベータ版を公開したいです。

 あと、ここ最近アクセス解析を導入して分かったのですが、このページってメインのCLKsのアクセスよりも、C#講座へのアクセスのほうが数倍多いようで。どうも、C#講座は検索サイトで直接引っかかるみたいです。CLKsのメインページもちゃんと書き直してもう少しヒットするようにしないとまずいですね。

 同じことが今月の最初に書いてあったりして。