SyntaxHighlighter

2012年2月20日月曜日

簡単なUIができた


今回はBox2DではなくほとんどDxLibを触っていた。

左右の赤(Health)と青(Power)の円アイコンの増減は、残量に応じてマスクを移動させた後、中身を埋めた円を描画することで実装。

それより小さな円アイコンは
a. 割り当てたスキルの画像
b. スキルの再使用時間
c. 利用回数制限があるスキルはその残り利用回数
…を表示

ウィンドウの大きさを可変にしたいので、画像の大きさも可変にする必要がある。ただ、b.(円グラフ)を表現するためにDxLib::DrawCircleGaugeっていう便利な関数を使いたかったが、これの引数のグラフィックハンドルは既に適切な大きさになっている必要がある。画像を拡大縮小して描画する関数にDxLib::DrawExtendGraphがあるが、DxLib::ExtendGraphCircleGauge関数なるものは存在しないので、DxLib::MakeScreenを使ってサイズを拡大/縮小したアイコン用のグラフィックハンドルを作ってから、DxLib::DrawCircleGaugeで描画している。

DrawCircleGaugeは三角形の組み合わせを描画することで実現している模様。
ちなみにそのままではこの関数で矩形を描画することはできない。

作ってから思ったのだけど、銃本体をスキル扱いにしてしまっているので、今の仕様だと左手にマシンガン、右手にショットガン、残りスキルスロットにも重火器スキルを設定すると、スキルスロットの数だけ武器が同時発射可能になってしまう。
色々バランスが崩壊することが予想されるので、”装備している武器を使う”スキルとして実装する必要がありそう。さらに、スキルの再使用時間以外にの追加のパラメータとしてスキル使用後の硬直(他のスキルも使用できない)時間を設定する必要もあるか。

次回更新までに、スキルの種類増やしつつその辺を補強しようと思います。

0 件のコメント:

コメントを投稿