/* lesson3.cpp Cone3D GFX with SDL lesson 3. Made by Marius Andra 2001 http://cone3d.gamedev.net You can use the code for anything you like. Even in a commercial project. But please let me know where it ends up. I'm just curious. That's all. */ #include #include #include "CSprite2.h" #include "CSpriteBase2.h" ///* //#include "CSprite.cpp" // not //#include "CSpriteBase.cpp" // not ///* no #include // /* no SDL_Surface *screen, *back; CSpriteBase vikingbase; CSpriteBase sunbase; CSprite vikings1; CSprite vikings2; CSprite sun; SDL_Surface * ImageLoad(char *file) { SDL_Surface *temp1, *temp2; temp1 = SDL_LoadBMP(file); temp2 = SDL_DisplayFormat(temp1); SDL_FreeSurface(temp1); return temp2; } int InitImages() { back = ImageLoad("data/bg.bmp"); return 0; } void DrawIMG(SDL_Surface *img, int x, int y) { SDL_Rect dest; dest.x = x; dest.y = y; SDL_BlitSurface(img, NULL, screen, &dest); } void DrawBG() { DrawIMG(back, 0, 0); } void DrawScene() { sun.clearBG(); vikings1.clearBG(); vikings2.clearBG(); sun.updateBG(); vikings1.updateBG(); vikings2.updateBG(); sun.draw(); vikings1.draw(); vikings2.draw(); SDL_Flip(screen); } int main(int argc, char *argv[]) { Uint8* keys; if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) { printf("Unable to init SDL: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); screen=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE|SDL_FULLSCREEN|SDL_HWPALETTE); if ( screen == NULL ) { printf("Unable to set 640x480 video: %s\n", SDL_GetError()); exit(1); } vikingbase.init("data/vikings"); sunbase.init("data/sun"); sun.init(&sunbase,screen); sun.set(480,50); sun.setSpeed(0.00005); vikings1.init(&vikingbase,screen); vikings1.set(150,300); vikings1.setSpeed(25); vikings2.init(&vikingbase,screen); vikings2.set(350,300); vikings2.setSpeed(0.0025); SDL_ShowCursor(0); InitImages(); DrawBG(); int done=0; while(done == 0) { SDL_Event event; while ( SDL_PollEvent(&event) ) { if ( event.type == SDL_QUIT ) { done = 1; } if ( event.type == SDL_KEYDOWN ) { if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; } if ( event.key.keysym.sym == SDLK_SPACE ) { sun.toggleAnim(); } } } keys = SDL_GetKeyState(NULL); if ( keys[SDLK_UP] ) { vikings1.yadd(-1); } if ( keys[SDLK_DOWN] ) { vikings1.yadd(1); } if ( keys[SDLK_LEFT] ) { vikings1.xadd(-1); } if ( keys[SDLK_RIGHT] ) { vikings1.xadd(1); } DrawScene(); } return 0; } //*/