C++とSDLでゲームを作ろう3-イメージの表示とその移動-
今度は一気にイメージの表示とそれの移動までです。まず、イメージの表示ですけど、大体の手順は次のようになります。1.イメージ用のSurfaceの初期化と画像ファイルの読み込み。SDL_Surface *image;image = SDL_LoadBMP("filename");2.更新の位置のためのSDL_Rectの初期化。SDL_Rect imageRect;imageRect.x = 0;imageRect.y = 0;imageRect.w = image->w;imageRect.h = image->h;3.画面にイメージのSurfaceを描画。SDL_BlitSurface(image, NULL, screen, &imageRect);4.描画した部分の表示を更新。SDL_UpdateRect(screen, imageRect.x, imageRect.y, image->w, image->h);まぁこんな感じでしょうか。3と4の処理はループの中においておくといいです。大抵、画面の描画と更新は繰り返し行うようにしておくといいです。例えば、イメージの位置を移動させたときに画面が更新されないとその通りに表示されませんので。次に画像を移動させる処理ですが、これはイメージの位置を表すimageRectの座標を変えてやればOKです。これをキーの入力にあわせて行うと1,キーボードの状態を取得する。Uint8 *keystate = SDL_GetKeyState(NULL);2.キーの状態が1(SDL_PRESSED)の場合、画像の位置を変化させる。if(keystate[SDLK_LEFT]) imageRect.x--;といった感じになります。上のコードの場合、矢印の左キーの操作で画像が左に移動します。以上のような処理をやると画面の中で画像が移動するプログラムにできました。実行中の画面は下のようになりました。ソースは長くなるのでフリーページで作ってみました。→http://plaza.rakuten.co.jp/nissingeppo/2000