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
|
#include <stdio.h>
#include <teensy.h>
#include <math.h>
#include <time.h>
#define QOI_IMPLEMENTATION
#include "third/qoi.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);
qoi_desc desc;
void *data = qoi_read("test_img.qoi", &desc, 3);
if (!data)
ty_log_fatal(TY_ERR_IO, "Failed to read image");
struct ty_image img = ty_create_image(desc.width, desc.height, data);
free(data);
while (ty_is_game_running()) {
ty_draw_clear(TY_COLOR_BLACK);
ty_draw_image_ex(
img,
(struct ty_recti){
0, 0,
img.width, img.height,
},
(struct ty_recti){
0, 0,
SCREEN_WIDTH, SCREEN_HEIGHT,
}
);
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();
ty_sleep(1000 / hints.ticrate);
}
ty_free_image(img);
ty_deinit();
return 0;
}
|