// 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); }
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); }