#include "sdl_init.h" /* Simple TRON clone This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ class TCar { private: int direction; void handle_input(); void draw(); int x,y; std::vector rects; public: TCar() { direction = 1; x = 0; y = 0; } void go() { handle_input(); draw(); } }; void TCar::handle_input() { //While there's an event to handle while( SDL_PollEvent( &event ) ) { //If the user has Xed out the window if( event.type == SDL_QUIT ) { //Quit the program quit = true; } //If a key was pressed if( event.type == SDL_KEYDOWN ) { switch( event.key.keysym.sym ) { case SDLK_UP: direction = 1; break; case SDLK_DOWN: direction = 2; break; case SDLK_LEFT: direction = 3; break; case SDLK_RIGHT: direction = 4; break; } } } }; void TCar::draw() { for(int i=0; igo(); } int main( int argc, char* args[] ) { // Initialize all SDL subsystems if(SDL_Init(SDL_INIT_EVERYTHING) == -1) { return 1; } // Set up the screen screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE ); // If there was in error in setting up the screen if( screen == NULL ) { return 1; } // Disable key repeating SDL_EnableKeyRepeat(0,0); // Set the window title SDL_WM_SetCaption(" T R O N ",NULL); TGame game = new TGame(); while(!quit) { // While we havn't quit // blackify the scren SDL_FillRect( screen, &screen->clip_rect, SDL_MapRGB( screen->format, 0x0, 0x0, 0x0 ) ); game->run(); // Go if( SDL_Flip( screen ) == -1 ) { return 1; } // redraw screen } }