int clean_up() { // free images / animations bomb_quit(); bomber_quit(); level_quit(); sound_quit(); graphics_quit(); input_quit(); config_quit(); return 0; }
int main(int argc, char** argv) { SDL_Event ev; int quit = 0; int sleepCycle[] = {16, 17, 17}; int sleepNth = 0; int sleepTotal = 0; int frameStart = 0; int frameEnd = 0; int frameDelta = 0; // int fps = 0, fpsreport = 0; nthlevel = 0; newlevelpause = 1; SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); TTF_Init(); sound_setup(); sound_set_song(2); sfx_player_jump = sound_synth_get(0); sfx_player_jump->waveform = SYNTH_SQUARE; sfx_player_jump->length = 100; sfx_player_jump->amp_start = 0.3; sfx_player_jump->amp_end = 0.2; sfx_player_jump->freq_start = 300; sfx_player_jump->freq_end = 500; sfx_player_scare = sound_synth_get(1); sfx_player_scare->waveform = SYNTH_NOISE; sfx_player_scare->length = 320; sfx_player_scare->amp_start = 0.1; sfx_player_scare->amp_end = 0.1; sfx_player_scare->freq_start = 3200; sfx_player_scare->freq_end = 4800; sfx_player_scare2 = sound_synth_get(2); sfx_player_scare2->waveform = SYNTH_SQUARE; sfx_player_scare2->length = 320; sfx_player_scare2->amp_start = 0.15; sfx_player_scare2->amp_end = 0.0; sfx_player_scare2->freq_start = 1200; sfx_player_scare2->freq_end = 1550; sfx_clear_goat1 = sound_synth_get(3); sfx_clear_goat1->waveform = SYNTH_SQUARE; sfx_clear_goat1->length = 50; sfx_clear_goat1->amp_start = 0.3; sfx_clear_goat1->amp_end = 0.3; sfx_clear_goat1->freq_start = 450; sfx_clear_goat1->freq_end = 450; sfx_clear_goat2 = sound_synth_get(4); sfx_clear_goat2->waveform = SYNTH_SQUARE; sfx_clear_goat2->length = 50; sfx_clear_goat2->delay = 50; sfx_clear_goat2->amp_start = 0.3; sfx_clear_goat2->amp_end = 0.3; sfx_clear_goat2->freq_start = 1250; sfx_clear_goat2->freq_end = 1250; sfx_hurting = sound_synth_get(5); sfx_hurting->waveform = SYNTH_SQUARE; sfx_hurting->length = 180; sfx_hurting->delay = 0; sfx_hurting->amp_start = 0.3; sfx_hurting->amp_end = 0; sfx_hurting->freq_start = 1000; sfx_hurting->freq_end = 2; sfx_c4 = sound_synth_get(6); sfx_c4->waveform = SYNTH_SQUARE; sfx_c4->length = 180; sfx_c4->delay = 0; sfx_c4->amp_start = 0.3; sfx_c4->amp_end = 0.1; sfx_c4->freq_start = 261.626; sfx_c4->freq_end = 261.626; sfx_f4 = sound_synth_get(7); sfx_f4->waveform = SYNTH_SQUARE; sfx_f4->length = 180; sfx_f4->delay = 0; sfx_f4->amp_start = 0.3; sfx_f4->amp_end = 0.1; sfx_f4->freq_start = 349.228; sfx_f4->freq_end = 349.228; level = 0; gravity = 0.8; framefn = &_introfn; memset(&controls, 0, sizeof(Controls)); memset(&player, 0, sizeof(Player)); player.hearts = 10; player.rect.w = 48; player.rect.h = 64; // level_place_player(); player.spriterect.x = 192; player.spriterect.y = 0; player.spriterect.w = 48; player.spriterect.h = 64; font = TTF_OpenFont("Vera.ttf", 16); screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); load_sprites(); mygoats = (Goat**) malloc(sizeof(Goat*) * 16); memset(mygoats, 0, sizeof(Goat*) * 16); // mygoats[0] = goat_create(100, 10); // mygoats[1] = goat_create(300, 10); // mygoats[2] = goat_create(500, 10); myslimes = (Slime**) malloc(sizeof(Slime*) * 16); memset(myslimes, 0, sizeof(Slime*) * 16); // myslimes[0] = slime_create(400, 10, 1); // myslimes[0]->controls.left = 1; // fpsreport = SDL_GetTicks() + 1000; while (!quit) { frameDelta = SDL_GetTicks() - frameStart; frameStart = SDL_GetTicks(); framefn(frameDelta); while (SDL_PollEvent(&ev)) { switch (ev.type) { case SDL_KEYDOWN: switch (ev.key.keysym.sym) { case SDLK_LEFT: controls.left = 1; break; case SDLK_RIGHT: controls.right = 1; break; case SDLK_UP: // controls.up = 1; controls.button1 = 1; break; case SDLK_DOWN: controls.down = 1; break; case SDLK_z: case SDLK_SPACE: controls.button1 = 1; break; case SDLK_x: case SDLK_LCTRL: controls.button2 = 1; break; default: break; } break; case SDL_KEYUP: switch (ev.key.keysym.sym) { case SDLK_LEFT: controls.left = 0; break; case SDLK_RIGHT: controls.right = 0; break; case SDLK_UP: // controls.up = 0; controls.button1 = 0; break; case SDLK_DOWN: controls.down = 0; break; case SDLK_z: case SDLK_SPACE: controls.button1 = 0; break; case SDLK_x: case SDLK_LCTRL: controls.button2 = 0; break; default: break; } break; case SDL_QUIT: quit = 1; break; default: break; } } // ++fps; frameEnd = SDL_GetTicks(); // if (fpsreport <= frameEnd) // { // printf("%d fps\n", fps); // fps = 0; // fpsreport += 1000; // } if (sleepCycle[sleepNth] - (frameEnd - frameStart) > 0) { SDL_Delay(sleepCycle[sleepNth] - (frameEnd - frameStart)); } if (++sleepNth > 2) { sleepNth = 0; } } sound_quit(); TTF_CloseFont(font); TTF_Quit(); SDL_Quit(); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { if(interface_init() != 0 || sound_init() != 0) return -1; if(argc < 2) { printf("No input song directory\n"); return -1; } if(FOF_load(argv[1]) != 0) { printf("Unable to open FOF song from folder.\n"); return -1; } score_init(); SDL_InitSubSystem(SDL_INIT_JOYSTICK); SDL_JoystickOpen(0); controller_xplorer(&joystick); //Start game sound_play(); u32 start_ticks = SDL_GetTicks(); bool quit = false; while(!quit) { static SDL_Event event; while(SDL_PollEvent(&event)) { controller_event_t controller_event; switch(event.type) { case SDL_KEYDOWN: if(event.key.keysym.sym == SDLK_q) quit=true; break; case SDL_QUIT: quit=true; break; case SDL_JOYBUTTONDOWN: send_controller_event(joystick.convert_button(event.jbutton.button, BUTTON_DOWN)); break; case SDL_JOYBUTTONUP: send_controller_event(joystick.convert_button(event.jbutton.button, BUTTON_UP)); break; case SDL_JOYHATMOTION: send_controller_event(joystick.convert_hat(event.jhat.hat, event.jhat.value)); break; default: break; } } static unsigned int delta_ticks, ticks, cur_ticks; ticks = SDL_GetTicks(); cur_ticks = SDL_GetTicks(); delta_ticks = cur_ticks - ticks; ticks = cur_ticks; u32 game_ticks = ticks - start_ticks; interface_time(game_ticks); score_time(game_ticks); if(game_ticks > scene.length) break; SDL_Delay(5); interface_draw(); static unsigned int frames = 0; static int t0 = 0; ++frames; int t = SDL_GetTicks(); if (t - t0 >= 1000) { //printf("%d frames in %d milliseconds = %g frames/second\n", Frames, (t - t0), Frames * 1000.0f / (t-t0)); //char foo[256]; fps = frames * 1000.0f / (t-t0); //sprintf(foo, "%s, %g fps", argv[1], frames * 1000.0f / (t-t0)); //SDL_WM_SetCaption(foo, NULL); t0 = t; frames = 0; } } FOF_close(); SDL_JoystickClose(0); interface_quit(); sound_quit(); return 0; }