Пример #1
0
static void render(void) {
	SDL_SetTextureAlphaMod(title_rotate[rotate_index].texture, 0xFF * brightness);
	SDL_SetRenderDrawColor(display.renderer, 0x20, 0x20, 0x20, 0x20);
	SDL_RenderClear(display.renderer);
	SDL_SetRenderDrawBlendMode(display.renderer, SDL_BLENDMODE_BLEND);
	SDL_SetRenderDrawColor(display.renderer, 0xFF, 0xFF, 0xFF, 0x20);

	draw_text_splat(&title_rotate[rotate_index], -1, 0);
	draw_sprite(panel_timer, 16, 28);
	timer_blit(ticks_countup, REFERENCE_WIDTH - 22, 32);
	draw_text_splat(&elapsed_time, -1, 56);
	
	SDL_RenderDrawLine(display.renderer, 0, 80, REFERENCE_WIDTH, 80);
	
	draw_text_splat(&achievements, -1, 81);
	
	if (achievement_index != -1) {
		draw_sprite(panel_achievement, 0, 106);
		draw_sprite(achievement_index, 9, 114);
		draw_text_splat(&ach_title[achievement_index], 48, 130 - (ach_title[achievement_index].source_rect.h / 2));
		draw_text_splat(&ach_desc[achievement_index], 4, 152);
	} else {
		draw_text_splat(&achievements_none, -1, 130);
	}
	
	SDL_RenderDrawLine(display.renderer, 0, 224, REFERENCE_WIDTH, 224);
	if (achievement_count > 1) {
		draw_text_splat(&achievements_more, -1, 232);
		draw_sprite(sui_arrow_left, 0, 226);
		draw_sprite(sui_arrow_right, REFERENCE_WIDTH - 32, 226);
	}
}
Пример #2
0
static void render(void) {
	SDL_Rect target = target_rect(&sky, -64, (REFERENCE_HEIGHT - BUILDING_HEIGHT / 4) - 128, 0.25f);
	target.y += sunset;
	SDL_RenderCopy(display.renderer, sky.texture, sky.src_rect, &target);
	for (size_t i = 0; i < MAX_THINGS; ++i) {
		thing_t *thing = &game.things[i];
		if (! thing->type) continue;
		sprite_t *sprite = sprite_thing_get(thing->type);
		target = target_rect(sprite, thing->position.x, thing->position.y, 1.f);
		
		if (thing->current_frame > sprite->frame_count) {
			LOG_WARN("%llu frame out of range!", (long long unsigned)i);
			thing->current_frame = 0;
		}
		
		SDL_RenderCopyEx(display.renderer, sprite->texture,
						 &sprite->src_rect[thing->current_frame], &target, thing->angle, NULL, 0);
	}
	
	if (camera.target.y > 0) {
		timer_blit(game.active_ticks, REFERENCE_WIDTH - 10, 10);
	}
	
}