BSprite でアニメーション


BSprite Class を使って簡単なアニメーションを行います。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. Object Class のヘッダファイル BSprite.h を include して下さい。
    タイマを使うので ID_TIMER を定義します。
    *App は Basic Sprite Object Class の定義です。
    File[] は BMP 画像ファイルの定義です。
    no は描画する Sprite の番号です。
        #include    <windows.h>
        #include    "BSprite.h"
        #define     SAFE_DELETE(p)  { if (p) { delete (p);     (p)=NULL; } }
        #define     ID_TIMER    (WM_APP + 0)
    
        BSprite     *App= NULL;     //Basic Sprite Object Class
        char        File[MAX_PATH]= "girl.bmp";
        int         no= 0;
        
  2. WM_CREATE: では Sprite の並びを指定して画像をロードします。
    準備ができるとタイマを設定してアニメーションを開始します。
        switch(msg)
        {   case WM_CREATE:
                App= new BSprite(hWnd);
                App->Load(File,7,1);
                SetTimer(hWnd,ID_TIMER,200,NULL);
                break;
        
  3. WM_PAINT: では no 番目の Sprite を描画します。
            case WM_PAINT:
                hdc= BeginPaint(hWnd, &ps);
                App->Show(no,100,50);
                EndPaint(hWnd, &ps);
                break;
        
  4. WM_TIMER: では、Sprite の番号(no)を切り替えて再描画します。
            case WM_TIMER:
                no= (no+1)%7;
                InvalidateRect(hWnd,NULL,TRUE);
                UpdateWindow(hWnd);
                break;
        
  5. WM_CLOSE: では、タイマを止めて Object を開放します。
            case WM_CLOSE:
                KillTimer(hWnd,ID_TIMER);
                SAFE_DELETE(App);
                DestroyWindow(hWnd);
                break;
        

【演習】

  1. アニメーション用の画像を調達して、アニメーションを楽しんで下さい。
    ネットを検索すれば Animation GIF の画像が沢山見つかるはずです。
  2. アニメーションGIF から画像を一枚ずつ取り出すときは、Animation GIF Master や D-Pixed が便利です。
    これらのソフトもネットから Down Load することが出来ます。
  3. アニメーションやゲームプログラムにおいて、やっかいな問題は画面のチラツキです。
    チラツキを抑える方法は 描画の「ちらつき」を抑える を参照して下さい。

超初心者のプログラム入門(Win32API C++)