A game engine for top-down 2D RPG games.
rpg
game-engine
raylib
c99
1#include <keraforge.h>
2#include <raylib.h>
3
4
5struct kf_spritesheet kf_loadspritesheet(char *filename, int spritewidth, int spriteheight)
6{
7 Texture2D tex = LoadTexture(filename);
8 return (struct kf_spritesheet){
9 .texture = tex,
10 .spritewidth = spritewidth,
11 .spriteheight = spriteheight,
12 .nsprites = (tex.width / spritewidth) * (tex.height / spriteheight),
13 };
14}
15
16inline
17void kf_drawsprite_wh(struct kf_spritesheet *sheet, f32 x, f32 y, f32 w, f32 h, int spritex, int spritey)
18{
19 KF_SANITY_CHECK(sheet != NULL, "spritesheet is null");
20
21 DrawTexturePro(
22 sheet->texture,
23 (Rectangle){
24 spritex * sheet->spritewidth,
25 spritey * sheet->spriteheight,
26 sheet->spritewidth,
27 sheet->spriteheight },
28 (Rectangle){ x, y, w, h },
29 (Vector2){ 0, 0 },
30 0,
31 WHITE
32 );
33}
34
35inline
36void kf_drawsprite(struct kf_spritesheet *sheet, f32 x, f32 y, int spritex, int spritey)
37{
38 kf_drawsprite_wh(sheet, x, y, sheet->spritewidth, sheet->spriteheight, spritex, spritey);
39}