-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgfx.c
47 lines (42 loc) · 1.04 KB
/
gfx.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "tetris.h"
static void _draw_rect_internal(SDL_Renderer *renderer, SDL_Rect *rect, Uint8 r, Uint8 g, Uint8 b)
{
SDL_SetRenderDrawColor(renderer, r, g, b, 255);
SDL_RenderFillRect(renderer, rect);
}
void tetramino_draw(tetramino_t *tetramino, SDL_Renderer *renderer, int size)
{
SDL_Rect rect;
rect.x = tetramino->x * size;
rect.y = tetramino->y * size;
rect.h = size;
rect.w = size;
_draw_rect_internal(renderer, &rect, tetramino->r, tetramino->g, tetramino->b);
}
void tetraminoes_draw(tetramino_t tetramini[], SDL_Renderer *renderer, int size)
{
for (int i = 0; i < 4; i++)
{
tetramino_draw(&tetramini[i], renderer, size);
}
}
void tetris_map_draw(tetris_map_t *map, SDL_Renderer *renderer, int size)
{
int y, x;
for (y = 0; y < map->height; y++)
{
for (x = 0; x < map->width; x++)
{
int index = map->width * y + x;
if (map->cell[index] != 0)
{
SDL_Rect rect;
rect.x = x * size;
rect.y = y * size;
rect.h = size;
rect.w = size;
_draw_rect_internal(renderer, &rect, 134, 136, 137);
}
}
}
}