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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
#include <stdio.h>
#include <teensy.h>
#include <math.h>
#include <unistd.h>
#define SCREEN_WIDTH 256
#define SCREEN_HEIGHT 256
#define TILE_SIZE 16
int main(void)
{
struct ty_creation_hints hints = {
.win_width = SCREEN_WIDTH,
.win_height = SCREEN_HEIGHT,
.win_title = "Demonchime",
.ticrate = 30,
};
ty_init(hints);
#define Y TY_COLOR_YELLOW
#define B TY_COLOR_BLACK
#define M TY_COLOR_MAGENTA
struct ty_color img_data[] = {
M, Y, Y, Y, Y, M,
Y, Y, Y, Y, Y, Y,
Y, B, Y, Y, B, Y,
Y, Y, Y, Y, Y, Y,
Y, B, B, B, B, Y,
M, Y, Y, Y, Y, M,
};
#undef Y
#undef B
#undef M
struct ty_image img = ty_create_image(6, 6, img_data);
while (ty_is_game_running()) {
ty_draw_clear(TY_COLOR_BLACK);
ty_draw_image(img, ty_vec2i(200, 200));
ty_draw_image_ex(
img,
(struct ty_recti){
0, 0,
6, 6,
},
(struct ty_recti){
100, 200,
img.width*12, img.height*6,
}
);
ty_draw_rect(
(struct ty_recti){
SCREEN_WIDTH*0.5 + sin(ty_get_time() * 10) * 50 - 25,
SCREEN_HEIGHT*0.5-25,
50, 50,
},
TY_COLOR_RED
);
ty_draw_line(
ty_vec2i(0, 0),
ty_vec2i(100, 100),
ty_color(0xFF, 0xF0, 0x80)
);
ty_draw_line(
ty_vec2i(100, 0),
ty_vec2i(0, 100),
ty_color(0x80, 0xF0, 0xFF)
);
ty_draw_line(
ty_vec2i(150, 0),
ty_vec2i(150, 100),
ty_color(0x80, 0xF0, 0xFF)
);
ty_draw_line(
ty_vec2i(100, 50),
ty_vec2i(200, 50),
ty_color(0xFF, 0xF0, 0x80)
);
ty_draw_end();
ty_tick();
usleep(1000000 / (hints.ticrate * 2));
}
ty_free_image(img);
ty_deinit();
return 0;
}
|