A game engine for top-down 2D RPG games.
rpg
game-engine
raylib
c99
1#include <keraforge.h>
2#include <raylib.h>
3#include <raymath.h>
4
5
6static
7void loadtiles(struct kf_spritesheet *terrain)
8{
9 KF_ADDTILE(
10 .key = "grass",
11 .mapcol = GREEN,
12 .sheet = terrain,
13 .sprite = {0, 0},
14 );
15 KF_ADDTILE(
16 .key = "sand",
17 .mapcol = YELLOW,
18 .sheet = terrain,
19 .sprite = {4, 0},
20 );
21 KF_ADDTILE(
22 .key = "stone",
23 .mapcol = GRAY,
24 .sheet = terrain,
25 .sprite = {0, 4},
26 );
27 KF_ADDTILE(
28 .key = "debug",
29 .mapcol = BLUE,
30 .sheet = terrain,
31 .sprite = {4, 4},
32 );
33 KF_ADDTILE(
34 .key = "brick",
35 .mapcol = RED,
36 .sheet = terrain,
37 .sprite = {8, 0},
38 .collide = true,
39 );
40 KF_ADDTILE(
41 .key = "ice",
42 .mapcol = BLUE,
43 .sheet = terrain,
44 .sprite = {8, 4},
45 .transparent = true,
46 );
47 KF_ADDTILE(
48 .key = "dirt",
49 .mapcol = BROWN,
50 .sheet = terrain,
51 .sprite = {12, 0},
52 );
53 KF_ADDTILE(
54 .key = "torch",
55 .mapcol = ORANGE,
56 .sheet = terrain,
57 .sprite = {12, 4},
58 .transparent = true,
59 );
60 kf_logdbg("loaded %d tiles", kf_tiles.count);
61}
62
63
64int main(int argc, const char *argv[])
65{
66 (void)argc;
67 (void)argv;
68
69 kf_openwindow("Keraforge");
70
71 kf_window.font = LoadFont("data/res/font/MyDearestBit.ttf");
72 kf_window.fontsize = 16;
73
74 struct kf_spritesheet terrain = kf_loadspritesheet("data/res/img/tile/terrain.png", 16, 16);
75 loadtiles(&terrain);
76
77 kf_startwindow();
78
79 return 0;
80}