diff --git a/game.c b/game.c index 7c96b9f..08d1210 100644 --- a/game.c +++ b/game.c @@ -88,122 +88,6 @@ int createCar(){ return 0; } -int mainv1(void){ - if(init() != 0) return 1; - - // create surface - surface = IMG_Load("img/car.png"); - if(!surface){ - printf("error create surface: %s\n", SDL_GetError()); - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - return 3; - } - - // create texture - texture = SDL_CreateTextureFromSurface(renderer, surface); - SDL_FreeSurface(surface); - if(!texture){ - printf("error create texture: %s\n", SDL_GetError()); - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - return 3; - } - - // car - SDL_Rect car; - SDL_QueryTexture(texture, NULL, NULL, &car.w, &car.h); - - car.x = (WINDOW_WIDTH - car.w) / 2; - car.y = (WINDOW_HEIGHT- car.h) / 2; - - Uint8 close_requested = 0; - int car_moving = 0; - int direction = 0; - - double heading = PI; - double speed = SPEED / FPS; - - while(!close_requested){ - // process events - SDL_Event event; - while (SDL_PollEvent(&event)){ - switch (event.type) { - case SDL_QUIT: - close_requested = 1; - break; - case SDL_KEYDOWN: - switch (event.key.keysym.scancode) { - case SDL_SCANCODE_UP: - case SDL_SCANCODE_W: - car_moving = 1; - break; - case SDL_SCANCODE_DOWN: - case SDL_SCANCODE_S: - car_moving = -1; - break; - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_A: - direction = 1; - break; - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_D: - direction = -1; - default: - break; - } - break; - case SDL_KEYUP: - switch (event.key.keysym.scancode) { - case SDL_SCANCODE_UP: - case SDL_SCANCODE_W: - case SDL_SCANCODE_DOWN: - case SDL_SCANCODE_S: - car_moving = 0; - break; - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_A: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_D: - direction = 0; - default: - break; - } - default: - break; - } - } - - // clear the window - SDL_RenderClear(renderer); - - // update position - if(car_moving == 1){ - car.x += (int) (sin(heading)*speed); - car.y += (int) (cos(heading)*speed); - }else if(car_moving == -1){ - car.x -= (int) (sin(heading)*speed); - car.y -= (int) (cos(heading)*speed); - } - - // drow image - SDL_RenderCopy(renderer, texture, NULL, &car); - SDL_RenderPresent(renderer); - - // wait - SDL_Delay(1000 / FPS); - } - - // clean up resources before exiting - SDL_DestroyTexture(texture); - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -} - int main(void){ if(init() != 0) return 1; if(createCar() != 0) return 2; @@ -275,15 +159,20 @@ int main(void){ SDL_RenderClear(renderer); // update position - if(direction == 1){ - heading += sspeed; - }else if(direction == -1){ - heading -= sspeed; - } if(car_moving == 1){ + if(direction == 1){ + heading += sspeed; + }else if(direction == -1){ + heading -= sspeed; + } car_pos[0] += (sin(heading)*speed); car_pos[1] += (cos(heading)*speed); }else if(car_moving == -1){ + if(direction == 1){ + heading -= sspeed; + }else if(direction == -1){ + heading += sspeed; + } car_pos[0] -= (sin(heading)*speed); car_pos[1] -= (cos(heading)*speed); }