int main(int argc, char* args[]) { SDL_Window* window = nullptr; SDL_Surface* windowSurface = nullptr; SDL_Renderer* renderer = nullptr; if (!init(&window, &windowSurface, &renderer)) { printf("Failed to initialize SDL.\n", SDL_GetError()); } else { bool quit = false; SDL_Event e; Player player; SDL_Rect winBox; addEnemy(); addEntity(player.m_pos, 375, 25, 25, 25); addEntity(winBox, 0, 750, 50, 800); //Game loop while (!quit) { while (SDL_PollEvent(&e) != 0) { if (e.type == SDL_QUIT) { quit = true; } if (e.type == SDL_KEYDOWN) { inputMananger(e, player.m_pos, player.m_movementSpeed); } } if (playerCollisions(enemies, player)) { resetPlayerPos(player); } enemyMovement(); gameBounds(player.m_pos); render(&renderer, player.m_pos, winBox); //Check to see whether the game is won if (checkWinCollision(winBox, player)) { quit = true; } SDL_Delay(16); //Simulate 16 fps } } close(&window, &renderer); return 0; }
/* Desc: Args: Ret: */ void update(player * p, enemy1 * e, SDL_Renderer * ren) { enemy1 * prev = NULL; int enemyCount = 0; if(p->invTicks >= 0) { p->invTicks++; } enemyCollisions(p, e); playerCollisions(p, e); while(e != NULL) { if(e->clipSP != NULL && e->tex != NULL) { if((e->clipSP->x - ENEMY_SPEED) >= 0) { e->clipSP->x -= ENEMY_SPEED; } else { //e->clipSP->x = SCREEN_WIDTH + (e->clipSP->x - ENEMY_SPEED); e->dead = 1; } } if(e != NULL && e->next != NULL) { prev = e; e = e->next; } else if(e == NULL) { e = NULL; } else { if(enemyCount <= 3) { e->next = initEnemy1(ren); } e = NULL; } enemyCount++; } }