From ef48585135194b6fd34f7e1f04fe79285bddd401 Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Tue, 26 May 2026 10:37:06 -0400 Subject: [PATCH] modified assets for the new physics simulation engine, added velocity readouts to top left of HUD --- assets/characters/littleguy.json | 8 ++++--- assets/characters/menupointer.json | 8 ++++--- assets/properties.json | 4 +++- assets/sidescroller.tmj | 2 +- deps/libakgl | 2 +- src/gamemodes.c | 36 ++++++++++++++++++++++++++---- 6 files changed, 47 insertions(+), 13 deletions(-) diff --git a/assets/characters/littleguy.json b/assets/characters/littleguy.json index dca9ae8..b438ab6 100644 --- a/assets/characters/littleguy.json +++ b/assets/characters/littleguy.json @@ -1,8 +1,10 @@ { "name": "little guy", - "movementspeed": 8, - "velocity_x": 1, - "velocity_y": 1, + "speedtime": 8, + "acceleration_x": 0.001, + "acceleration_y": 0.001, + "speed_x": 1, + "speed_y": 1, "sprite_mappings": [ { "state": [ diff --git a/assets/characters/menupointer.json b/assets/characters/menupointer.json index e8a61d8..78d633f 100644 --- a/assets/characters/menupointer.json +++ b/assets/characters/menupointer.json @@ -1,8 +1,10 @@ { "name": "menupointer", - "movementspeed": 8, - "velocity_x": 0, - "velocity_y": 0, + "speedtime": 8, + "speed_x": 0, + "speed_y": 0, + "acceleration_x": 0, + "acceleration_y": 0, "sprite_mappings": [ { "state": [ diff --git a/assets/properties.json b/assets/properties.json index c94c8b1..2a75db1 100644 --- a/assets/properties.json +++ b/assets/properties.json @@ -2,6 +2,8 @@ "properties": { "some.key.with.a.value": "value", "game.screenwidth": "640", - "game.screenheight": "480" + "game.screenheight": "480", + "physics.gravity.y": "32.0", + "physics.gravity.terminal_y": "120.0" } } diff --git a/assets/sidescroller.tmj b/assets/sidescroller.tmj index cbce02b..a5436c7 100644 --- a/assets/sidescroller.tmj +++ b/assets/sidescroller.tmj @@ -33,7 +33,7 @@ { "name":"state", "type":"int", - "value":24 + "value":1041 }], "rotation":0, "type":"actor", diff --git a/deps/libakgl b/deps/libakgl index d87c5d2..314ce5e 160000 --- a/deps/libakgl +++ b/deps/libakgl @@ -1 +1 @@ -Subproject commit d87c5d2c20ce4d3c1c0343459f46222305d98faa +Subproject commit 314ce5e10d0b2d2eb55e5a53267a4cba07a5b7eb diff --git a/src/gamemodes.c b/src/gamemodes.c index 506f6ae..d48255a 100644 --- a/src/gamemodes.c +++ b/src/gamemodes.c @@ -1,4 +1,5 @@ #include +#include akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appstate, SDL_Event *event) { @@ -148,26 +149,53 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void) { int i = 0; akgl_Iterator opflags; + akgl_Actor *player; + TTF_Font *gamefont; char fpsText[32]; + char velocityText[128]; + int count; PREPARE_ERROR(e); PASS(e, renderer.frame_start(&renderer)); + player = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, "player", NULL); + FAIL_ZERO_RETURN(e, player, AKERR_NULLPOINTER, "player not in registry"); + gamefont = SDL_GetPointerProperty(AKGL_REGISTRY_FONT, "C64Pro", NULL); + FAIL_ZERO_RETURN(e, player, AKERR_NULLPOINTER, "font not in registry"); PASS(e, akgl_game_update(NULL)); memset((char *)&fpsText, 0x00, 32); snprintf((char *)&fpsText, 31, "FPS : %d", game.fps); PASS(e, akgl_text_rendertextat( - SDL_GetPointerProperty( - AKGL_REGISTRY_FONT, - "C64Pro", - NULL), + gamefont, (char *)&fpsText, (SDL_Color){255, 255, 255, 255}, 0, 450, 10) ); + + memset((char *)&velocityText, 0x00, 128); + snprintf((char *)&velocityText, 127, "AX: %f", player->vx); + PASS(e, akgl_text_rendertextat( + gamefont, + (char *)&velocityText, + (SDL_Color){255, 255, 255, 255}, + 0, + 10, + 10) + ); + memset((char *)&velocityText, 0x00, 128); + snprintf((char *)&velocityText, 127, "AY: %f", player->vy); + PASS(e, akgl_text_rendertextat( + gamefont, + (char *)&velocityText, + (SDL_Color){255, 255, 255, 255}, + 0, + 10, + 30) + ); + PASS(e, renderer.frame_end(&renderer)); SUCCEED_RETURN(e); }