Ejemplo n.º 1
0
// draw player to screen
void draw_player(SDL_Surface *screen, Player *p)
{
	polygon pol;
	pol.max = 4;
	pol.points[0] = translate_f_vector(rotate_f_vector(f_vector(15,0),p->angle), p->exact_pos);
	pol.points[1] = translate_f_vector(rotate_f_vector(f_vector(-6,12),p->angle), p->exact_pos);
	pol.points[2] = translate_f_vector(rotate_f_vector(f_vector(0,0),p->angle), p->exact_pos);
	pol.points[3] = translate_f_vector(rotate_f_vector(f_vector(-6,-12),p->angle), p->exact_pos);

	put_polygon(screen, pol, 0xFFFFFF);

	player_get_screen_coords(p);
	put_circle(screen, p->screen_pos.x, p->screen_pos.y, 5, 0xDD4444);
}
Ejemplo n.º 2
0
void renderer_bgfx::put_line(float x0, float y0, float x1, float y1, float r, UINT32 rgba, ScreenVertex* vertex, float fth)
{
	float dx = x1 - x0;
	float dy = y1 - y0;
	float d = sqrtf(dx * dx + dy * dy);
	if (d > 0.0001f)
	{
		d = 1.0f / d;
		dx *= d;
		dy *= d;
	}

	float nx = dy;
	float ny = -dx;
	float verts[4 * 3];
	r -= fth;
	r *= 0.5f;
	if (r < 0.01f)
	{
		r = 0.01f;
	}

	dx *= r;
	dy *= r;
	nx *= r;
	ny *= r;

	verts[0] = x0 - dx - nx;
	verts[1] = y0 - dy - ny;
	verts[2] = 0;

	verts[3] = x0 - dx + nx;
	verts[4] = y0 - dy + ny;
	verts[5] = 0;

	verts[6] = x1 + dx + nx;
	verts[7] = y1 + dy + ny;
	verts[8] = 0;

	verts[9] = x1 + dx - nx;
	verts[10] = y1 + dy - ny;
	verts[11] = 0;

	put_polygon(verts, 4, fth, rgba, vertex);
}