ホーム < ゲームつくろー! < IKD備忘録

wxWidgets
アニメーションコントロールを使ってみる

(2010. 5. 7)


 wxWidgetsのAnimationCtrlウィジットはwxAnimationというパラパラアニメーションを再生します。一番簡単な所でアニメーションGIFの再生をしてくれます。すごく簡単なのに効果的な感じです。



@ アニメーションコントローラの使い方

 このコントローラの使い方は極めて簡単です。まず、アニメーションGIFファイルを用意しましょう。ここではtest.gifというファイル名にしておきます。続いてフレーム内で次のようにオブジェクトを作ります:

TestFrame::TestFrame(const wxString &title, const wxSize &size) :
    wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, size)
{
    // パネル
    wxPanel *panel = new wxPanel(this, wxID_ANY);

    // アニメーションを生成
    wxAnimation animation("test.gif");
    wxAnimationCtrl *animationCtrl = new wxAnimationCtrl(panel, AnimationCtrlID, animation, wxPoint(20, 20));
    animationCtrl->Play();
}

 これで実行すると、例えばこういうアニメーションGIFがループ再生されます:

ほんとおっそろしいほどサックリ作れます。

 wxAnimationは色々なアニメーション情報を管理するクラスなのですが、デフォルト機能でアニメーションGIFを保持してくれます。プログラムにあるようにコンストラクタでファイル名を渡すと情報を解析して内部に蓄えます。wxAnimationCtrlはそのアニメーションの再生や停止などの操作を担当するクラスです。第3引数にwxAnimationを入れ、wxAnimationCtrl::Playメソッドを呼ぶとアニメーションが開始されます。ちなみに、アニメーションの停止はwxAnimationCtrl::Stopです。

 アニメーションする絵は、例えば何らかの読み込みをしているとか、ツール上で何かを再生しているとか「動いている、読み込んでいる」という事を表すのに非常に有効です。こんなに簡単に表示できるのですから、積極的に使っていきたいですね。