Update tilemaps to provide their own physics information. The sidescroller is acting funny.

This commit is contained in:
2026-06-02 17:12:47 -04:00
parent 3608c68764
commit 238c65a2eb
7 changed files with 22 additions and 16 deletions

View File

@@ -114,13 +114,13 @@
"properties":[ "properties":[
{ {
"name":"physics.drag.y", "name":"physics.drag.y",
"type":"string", "type":"float",
"value":"0.0" "value":0
}, },
{ {
"name":"physics.gravity.y", "name":"physics.gravity.y",
"type":"string", "type":"float",
"value":"0.0" "value":0
}, },
{ {
"name":"physics.model", "name":"physics.model",

View File

@@ -33,7 +33,7 @@
{ {
"name":"state", "name":"state",
"type":"int", "type":"int",
"value":1041 "value":17
}], }],
"rotation":0, "rotation":0,
"type":"actor", "type":"actor",
@@ -66,13 +66,13 @@
"properties":[ "properties":[
{ {
"name":"physics.drag.y", "name":"physics.drag.y",
"type":"string", "type":"float",
"value":"1.0" "value":0.125
}, },
{ {
"name":"physics.gravity.y", "name":"physics.gravity.y",
"type":"string", "type":"float",
"value":"1024.0" "value":32
}, },
{ {
"name":"physics.model", "name":"physics.model",

View File

@@ -91,13 +91,13 @@
"properties":[ "properties":[
{ {
"name":"physics.drag.y", "name":"physics.drag.y",
"type":"string", "type":"float",
"value":"0.0" "value":0
}, },
{ {
"name":"physics.gravity.y", "name":"physics.gravity.y",
"type":"string", "type":"float",
"value":"0.0" "value":0
}, },
{ {
"name":"physics.model", "name":"physics.model",

2
deps/libakgl vendored

View File

@@ -7,6 +7,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appsta
AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_WAITFORINPUT); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_WAITFORINPUT);
AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING);
PASS(e, akgl_tilemap_release(gamemap)); PASS(e, akgl_tilemap_release(gamemap));
physics = &_akgl_physics;
PASS(e, akgl_registry_init_actor()); PASS(e, akgl_registry_init_actor());
PASS(e, akgl_heap_init_actor()); PASS(e, akgl_heap_init_actor());
PASS(e, akgltest_init_menupointer()); PASS(e, akgltest_init_menupointer());
@@ -30,6 +31,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app
PASS(e, akgl_registry_init_actor()); PASS(e, akgl_registry_init_actor());
PASS(e, akgl_heap_init_actor()); PASS(e, akgl_heap_init_actor());
PASS(e, akgltest_init_player()); PASS(e, akgltest_init_player());
//PASS(e, akgl_physics_init_arcade(physics));
PASS(e, aksl_memset((void *)GAME_ControlMaps, 0x00, (sizeof(akgl_ControlMap) * AKGL_MAX_CONTROL_MAPS))); PASS(e, aksl_memset((void *)GAME_ControlMaps, 0x00, (sizeof(akgl_ControlMap) * AKGL_MAX_CONTROL_MAPS)));
PASS(e, akgltest_controller_bind_universal("player", AKGLTEST_CONTROLMAP_INGAMEACTOR, kbid, jsid)); PASS(e, akgltest_controller_bind_universal("player", AKGLTEST_CONTROLMAP_INGAMEACTOR, kbid, jsid));
akgl_Actor *actorptr = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, "player", NULL); akgl_Actor *actorptr = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, "player", NULL);
@@ -50,6 +52,10 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app
AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING);
AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_QUIT); AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_QUIT);
} }
if ( gamemap->use_own_physics == true ) {
SDL_Log("Using game map physics engine");
physics = &gamemap->physics;
}
AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_RUNNING); AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_RUNNING);
SUCCEED_RETURN(e); SUCCEED_RETURN(e);
} }