Port game-specific logic to Lua

This commit is contained in:
Fierelier 2023-05-14 22:48:25 +02:00
parent 5722a621d8
commit f5dcf6ccd3
2 changed files with 38 additions and 38 deletions

View File

@ -1,7 +1,43 @@
engine_window_init(96,64,"Game")
texture = engine_texture_create(8,32) texture = engine_texture_create(8,32)
engine_texture_from_file(texture,"assets/textures/fier0.rgba") engine_texture_from_file(texture,"assets/textures/fier0.rgba")
a = 0 --[[
function engine_onFrame() void handleEvent(struct ENGINE_EVENT * event) {
if (event->type == ENGINE_EVENT_TYPE_EXIT) {
exit(0);
}
}
]]--
frame = 0
frameSec = 0
lastSec = 0
iters = 0
function tick()
frame = frame + 1
frameSec = frameSec + 1
t = engine_time_get()
if t - lastSec >= 1000 then
print("FPS: " ..tostring(frameSec))
lastSec = t
frameSec = 0
iters = iters + 1
if iters > 4 then os.exit() end
end
engine_window_present()
end
while true do
event = engine_event_get()
--[[
if (event->type != ENGINE_EVENT_TYPE_NONE) {
handleEvent(event);
} else {
tick();
}
]]--
engine_free(event) -- We can't actually do anything with the event yet (no Lua implementation)
tick()
engine_texture_render_2d(texture,math.random(-8,102),math.random(-8,72)) engine_texture_render_2d(texture,math.random(-8,102),math.random(-8,72))
end end

36
main.c
View File

@ -5,46 +5,10 @@
#include "modules/engine/frontend/generic/textures.c" #include "modules/engine/frontend/generic/textures.c"
#include "modules/engine/addon/lua.c" #include "modules/engine/addon/lua.c"
void handleEvent(struct ENGINE_EVENT * event) {
if (event->type == ENGINE_EVENT_TYPE_EXIT) {
exit(0);
}
}
int frame = 0;
int frameSec = 0;
Uint32 lastSec = 0;
void tick() {
frame += 1;
frameSec += 1;
unsigned long tick = engine_time_get();
if (tick - lastSec >= 1000) {
printf("FPS: %d\n",frameSec);
lastSec = tick;
frameSec = 0;
}
luaL_loadstring(engine_lua_state,"engine_onFrame()");
lua_call(engine_lua_state,0,0);
engine_window_present();
//engine_time_sleep(33);
}
int main(int argc, char **argv) { int main(int argc, char **argv) {
for (int i = 0; i < argc; ++i) { for (int i = 0; i < argc; ++i) {
printf("argv[%d]: %s\n", i, argv[i]); printf("argv[%d]: %s\n", i, argv[i]);
} }
engine_window_init(96,64,"Game");
engine_luaInit(); engine_luaInit();
while (1) {
struct ENGINE_EVENT * event = engine_event_get();
if (event->type != ENGINE_EVENT_TYPE_NONE) {
handleEvent(event);
} else {
tick();
}
engine_free(event);
}
} }