diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2025-08-06 11:47:03 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2025-08-06 11:47:03 +0200 |
| commit | a007b4dd156ae1eae302cd43e22186caf854069b (patch) | |
| tree | 2e8d95a2d93776ce555232bbc20b6a8dd644a6b3 | |
| parent | 116124155ce9a36b50c0b606154547fffe549e49 (diff) | |
| download | bidi-a007b4dd156ae1eae302cd43e22186caf854069b.tar.gz | |
Added JSON example via Lua script
| -rw-r--r-- | main.c | 14 | ||||
| -rw-r--r-- | test/main.lua | 38 | ||||
| -rw-r--r-- | test/test.json | 4 |
3 files changed, 38 insertions, 18 deletions
@@ -6,6 +6,7 @@ #include "lauxlib.h" #include "stdlib/color.h" +#include "stdlib/json.h" #define IN_FILE "test/main.lua" #define DEBUG_LEVEL LOG_DEBUG @@ -86,6 +87,7 @@ int main(void) { lua_State *L = luaL_newstate(); luaL_openlibs(L); + // Registring Raylib mappings. lua_register(L, "open_window", l_open_window); lua_register(L, "close_window", l_close_window); lua_register(L, "window_running", l_window_running); @@ -95,6 +97,7 @@ int main(void) { lua_register(L, "draw_fps", l_draw_fps); lua_register(L, "clear_window", l_clear_window); + // Embedding color module. if (luaL_loadbuffer(L, color, color_len, "color") || lua_pcall(L, 0, 1, 0)) { fprintf(stderr, "Error loading color.lua: %s\n", lua_tostring(L, -1)); lua_close(L); @@ -102,8 +105,15 @@ int main(void) { } lua_setglobal(L, "color"); - // TODO: This should probably use loadbuffer instead. - // https://www.lua.org/manual/5.4/manual.html#luaL_loadbuffer + // Embedding JSON module. + if (luaL_loadbuffer(L, json, json_len, "json") || lua_pcall(L, 0, 1, 0)) { + fprintf(stderr, "Error loading json.lua: %s\n", lua_tostring(L, -1)); + lua_close(L); + return 1; + } + lua_setglobal(L, "json"); + + // Interpreting and running input file Lua script. if (luaL_loadfile(L, IN_FILE) || lua_pcall(L, 0, 0, 0)) { fprintf(stderr, "Error: %s\n", lua_tostring(L, -1)); return 1; diff --git a/test/main.lua b/test/main.lua index a8d87f3..0fc9be3 100644 --- a/test/main.lua +++ b/test/main.lua @@ -1,23 +1,29 @@ -for i = 0, 3 do - print(string.format("Hi %d times", i)) -end +function test_json() + local file = io.open("test/test.json", "r") + local content = file:read("*a") + file:close() -local file = io.open("test/test.txt", "r") -local content = file:read("*a") -print(content) -file:close() + local data = json.decode(content) -open_window(600, 600, "My Game") -set_fps(60) + print("name: " .. data.name) + for _, n in pairs(data.numbers) do + print(" - number: " .. n) + end +end -BLACK = { r = 0, g = 0, b = 0 } +function test_graphics() + open_window(600, 600, "My Game") + set_fps(60) -while window_running() do - begin_drawing() - clear_window(color.VIOLET) + while window_running() do + begin_drawing() + clear_window(color.RAYWHITE) + draw_fps() + end_drawing() + end - draw_fps() - end_drawing() + close_window() end -close_window() +test_json() +test_graphics() diff --git a/test/test.json b/test/test.json new file mode 100644 index 0000000..4bd3e38 --- /dev/null +++ b/test/test.json @@ -0,0 +1,4 @@ +{ + "name": "Bob", + "numbers": [1, 3, 5, 2] +} |
