Beispiel #1
0
static void render(void) {
	view_render_parent();
	uint8_t alpha_byte = (uint8_t)(0xFF * alpha);
	SDL_SetRenderDrawBlendMode(display.renderer, SDL_BLENDMODE_BLEND);
	SDL_SetRenderDrawColor(display.renderer, target.r, target.g, target.b, alpha_byte);
	SDL_RenderFillRect(display.renderer, NULL);
	
	if (view_fade_done()) {
		view_pop();
	}
}
Beispiel #2
0
static void update(void) {
	brightness = 1.f - fabsf((float)rotate_timeout - (ROTATE_INTERVAL / 2)) / ((float)ROTATE_INTERVAL / 2);
	rotate_timeout -= 1;
	if (rotate_timeout == 0) {
		rotate_index = (rotate_index + 1) % 2;
		rotate_timeout = ROTATE_INTERVAL;
	}

	if (ticks_countup < game.ended_at_ticks) ticks_countup += 10;
	if (ticks_countup > game.ended_at_ticks) ticks_countup = game.ended_at_ticks;
	
	if (input_timeout == 0) {
		if (keyboard_is_down(SDLK_LEFT) && achievement_count > 0) {
			if (achievement_index == ach_no_left_arrow) {
				deactivate();
				game.score.bprops[ach_no_no_left_arrow] = true;
				activate();
				ticks_countup = game.ended_at_ticks;
				achievement_index = ach_no_no_left_arrow;
				audio_play("sfx/ach.wav");
			} else {
				do {
					achievement_index = achievement_index - 1;
					if (achievement_index < 0) achievement_index = bp__last - 1;
				} while (! achieved_now[achievement_index]);
			}
			input_timeout = INPUT_INTERVAL;
		}
		
		if (keyboard_is_down(SDLK_RIGHT) && achievement_count > 0) {
			do {
				achievement_index = (achievement_index + 1) % bp__last;
			} while (! achieved_now[achievement_index]);
			input_timeout = INPUT_INTERVAL;
		}
	} else {
		--input_timeout;
	}
	
	if (keyboard_is_down(SDLK_ESCAPE)) {
		while (view_pop()) {}
		game_init();
	}
}
Beispiel #3
0
static void process_dude_gibs(thing_t *dt) {
    if (view_fade_done()) {
        set_score();

        // Pop everything (pause? fade? who cares)
        while (view_pop()) { };
        view_fade_in((SDL_Color) {
            255, 255, 255, 255
        });
        view_push(&view_score);
        view_push(&view_fade);
        audio_music_fade();


        process_init();

    } else {
        uint32_t since_ended = game.active_ticks - game.ended_at_ticks;
        if (since_ended == 60) {
            view_push(&view_fade);
        }
    }
}