A game engine for top-down 2D RPG games.
rpg game-engine raylib c99
at main 969 B view raw
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}