Beispiel #1
0
int clean_up()
{
	// free images / animations
	
	bomb_quit();
	bomber_quit();
	level_quit();
	sound_quit();
	graphics_quit();
	input_quit();
	config_quit();
	
	return 0;
}
Beispiel #2
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;
}
Beispiel #3
0
Datei: main.c Projekt: pbos/kth
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;
}