美人の顔のアニメーション


説明の画像
Sprite.cpp を作成して美人の顔が変わるアニメーションを描画します。
テストが終了したら、簡単に My.lib へ登録することができます。

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

プロジェクトの設定

  1. 新規プロジェクト(Sprite)を作成して、次のファイルをフォルダーに格納して下さい。
    Main.cpp アニメーションを描画する Main Program
    Sprite.cppSprite Class のプログラムファイル
    Sprite.h Sprite Class のヘッダーファイル
    美人16.bmp16 枚の Sprite で構成される美人の画像
  2. [プロジェクト][既存項目の追加]から Sprite.cpp をプロジェクトに追加します。
  3. ソースプログラムの先頭を表示して Sprite.h を取り込んで下さい。
        #include "Sprite.h"
        #define   MAX_LOADSTRING 100
        #define   SAFE_DELETE(p)  { if (p) { delete (p); (p)=NULL; } }
        #define   ID_TIMER    32767
        
  4. Sprite Class の Object と表示中の画像番号を格納する領域を定義して下さい。
        SPRITE          *Sprite= NULL;
        WORD            no= 0;
        
  5. WndProc() に WM_CREATE: を追加します。
        LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
        {       :
                :
            case WM_CREATE:
                Sprite= new SPRITE(hWnd);
                Sprite->Load("美人16.bmp",4,4);
                Sprite->Adjust();
                SetTimer(hWnd,ID_TIMER,200,NULL);
                break;
        
  6. WM_PAINT: を表示して、ソースコードを追加して下さい。
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            // TODO: 描画コードをここに追加してください...
            Sprite->Show(hdc,no,0,0);
            EndPaint(hWnd, &ps);
            break;
        
  7. WndProc() に WM_TIMER: を追加して、次のソースコードを追加して下さい。
        case WM_TIMER:
            no= (no+1)%16;
            InvalidateRect(hWnd,NULL,TRUE);
            UpdateWindow(hWnd); 
            break;
        
  8. WndProc() に WM_CLOSE: を表示して、次のソースコードを追加して下さい。
        case WM_CLOSE:
            KillTimer(hWnd,ID_TIMER);
            SAFE_DELETE(Sprite);
            DestroyWindow(hWnd);
            break;
        
  9. BMP 画像はファイルから直接入力するのでリソースとして取り込む必要はありません。
  10. [デバッグ]を選択してビルドに続いて実行を行います。
    ページ先頭の画面が表示されて美人の顔がアニメーションされていれば完成です。

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