#include "mempool.h" #include "scene_impl.h" #include #include // Maintain own queue to handle key presses struct sc_queue_32 key_buffer; Scene_t *scenes[1]; static GameEngine_t engine = { .scenes = scenes, .max_scenes = 1, .curr_scene = 0, .assets = {0} }; int main(void) { sc_queue_init(&key_buffer); InitWindow(1280, 640, "raylib"); SetTargetFPS(60); init_memory_pools(); init_assets(&engine.assets); Texture2D* tex = add_texture(&engine.assets, "plr_tex", "res/test_tex.png"); Sprite_t* spr = add_sprite(&engine.assets, "plr_stand", tex); spr->origin = (Vector2){0, 0}; spr->frame_size = (Vector2){32, 32}; spr = add_sprite(&engine.assets, "plr_run", tex); spr->frame_count = 4; spr->origin = (Vector2){0, 0}; spr->frame_size = (Vector2){32, 32}; spr->speed = 15; LevelScene_t scene; scene.scene.engine = &engine; init_level_scene(&scene); scenes[0] = &scene.scene; change_scene(&engine, 0); while(true) { // This entire key processing relies on the assumption that a pressed key will // appear in the polling of raylib unsigned int sz = sc_queue_size(&key_buffer); // Process any existing pressed key for (size_t i=0; i