アットウィキロゴ

何から手を付ければいいのかの話

あと個別の記事にする前の雑記。

スクリプトにするか、C/C++にするか

ネイティブにするべきところは
  • スプライト描画システム
  • アニメーションコントローラ
入力etcは、SDLが補足して、luaに引き渡すとすれば、必要なのはこれだけ。
んじゃとりあえずスプライト描画システムから勉強してみましょうか。
Google:シーングラフ-

リンク

SDLの下準備

  • gamebase下にrunフォルダを作る
  • その中に以下のものをいれる
    • SDL.dll
    • SDL_image.dll
    • libpng12-0.dll
    • zlib1.dll
    • SDL_ttf.dll
    • libfreetype-6.dll
  • [ツール]->[オプション]->VC++ディレクトリで、インクルードディレクトリとライブラリディレクトリを設定する
  • [構成プロパティ]->[全般]->[文字セット]を「マルチバイト文字セットを使用する」
  • [構成プロパティ]->[リンカ]->[入力]の「追加の依存ファイル」に以下のファイルを追加
    • SDL.lib
    • SDLmain.lib
    • SDL_ttf.lib
    • SDL_image.lib
    • Opengl32.lib
    • Glu32.lib
  • [構成プロパティ]->[デバッグ]の「作業ディレクトリ」を「run」

C++用ラッパー

sdlmm
sdloo
sdlucid
なんか実装が古いとかなんとか。あとで確認ー。
g3dってのもあるけど、これ3D用だなー。

サンプルコードぱくってきたお><


#include "SDL.h"
#include<stdio.h>
int main(int argc,char* argv[])
 {
   SDL_Surface *screen;
 /*The following code does the initialization for Audio and Video*/
   int i_error=SDL_Init(SDL_INIT_VIDEO);
 /*If initialization is unsuccessful, then quit */ 
   if(i_error==-1)
       exit(1);
     atexit(SDL_Quit);
 /*
 * Initialize the display in a 640x480 8-bit palettized mode,
 * requesting a software surface
 */
   screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);
   if ( screen == NULL )
   {
     fprintf(stderr, "Couldn't set 640x480x8 video mode: %sn",SDL_GetError());
     exit(1);
   } 
 }


サーフェスってのは画像の単位
表示する画面もサーフェスとして扱うんだって
SDL_Surface *image=SDL_LoadBMP("Tux.bmp");
こんな感じ。

まとめ前の話
とりあえず画像ロードする、ロードしたら表示するサーフェスにBlitする
もし画面になら画面のサーフェスに、他の画像にならその画像に
疑問点
  • 画像をロード→パレット生成
  • 画像をロード→その画像にあわせたサーフェスを新たに作る→そこにBlit
どっちの流れが良いんだろう

タグ:

+ タグ編集
  • タグ:
最終更新:2009年02月27日 13:34