Compare commits
5 Commits
cd602767db
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
dc0d51d637
|
|||
|
238c65a2eb
|
|||
|
3608c68764
|
|||
|
fa0584f28f
|
|||
|
ef48585135
|
@@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "little guy",
|
"name": "little guy",
|
||||||
"movementspeed": 8,
|
"speedtime": 8,
|
||||||
"velocity_x": 1,
|
"acceleration_x": 64.0,
|
||||||
"velocity_y": 1,
|
"acceleration_y": 64.0,
|
||||||
|
"speed_x": 64.0,
|
||||||
|
"speed_y": 64.0,
|
||||||
"sprite_mappings": [
|
"sprite_mappings": [
|
||||||
{
|
{
|
||||||
"state": [
|
"state": [
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "menupointer",
|
"name": "menupointer",
|
||||||
"movementspeed": 8,
|
"speedtime": 8,
|
||||||
"velocity_x": 0,
|
"speed_x": 0,
|
||||||
"velocity_y": 0,
|
"speed_y": 0,
|
||||||
|
"acceleration_x": 0,
|
||||||
|
"acceleration_y": 0,
|
||||||
"sprite_mappings": [
|
"sprite_mappings": [
|
||||||
{
|
{
|
||||||
"state": [
|
"state": [
|
||||||
|
|||||||
@@ -111,6 +111,22 @@
|
|||||||
"nextlayerid":5,
|
"nextlayerid":5,
|
||||||
"nextobjectid":18,
|
"nextobjectid":18,
|
||||||
"orientation":"orthogonal",
|
"orientation":"orthogonal",
|
||||||
|
"properties":[
|
||||||
|
{
|
||||||
|
"name":"physics.drag.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.gravity.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.model",
|
||||||
|
"type":"string",
|
||||||
|
"value":"arcade"
|
||||||
|
}],
|
||||||
"renderorder":"right-down",
|
"renderorder":"right-down",
|
||||||
"tiledversion":"1.8.2",
|
"tiledversion":"1.8.2",
|
||||||
"tileheight":16,
|
"tileheight":16,
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"some.key.with.a.value": "value",
|
"some.key.with.a.value": "value",
|
||||||
"game.screenwidth": "640",
|
"game.screenwidth": "640",
|
||||||
"game.screenheight": "480"
|
"game.screenheight": "480",
|
||||||
|
"physics.gravity.y": "1024.0",
|
||||||
|
"physics.drag.y": "1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,14 +33,14 @@
|
|||||||
{
|
{
|
||||||
"name":"state",
|
"name":"state",
|
||||||
"type":"int",
|
"type":"int",
|
||||||
"value":24
|
"value":17
|
||||||
}],
|
}],
|
||||||
"rotation":0,
|
"rotation":0,
|
||||||
"type":"actor",
|
"type":"actor",
|
||||||
"visible":true,
|
"visible":true,
|
||||||
"width":16,
|
"width":16,
|
||||||
"x":304.261511065887,
|
"x":294.721953701349,
|
||||||
"y":258.471635716103
|
"y":58.7769015517682
|
||||||
}],
|
}],
|
||||||
"opacity":1,
|
"opacity":1,
|
||||||
"type":"objectgroup",
|
"type":"objectgroup",
|
||||||
@@ -63,6 +63,22 @@
|
|||||||
"nextlayerid":4,
|
"nextlayerid":4,
|
||||||
"nextobjectid":2,
|
"nextobjectid":2,
|
||||||
"orientation":"orthogonal",
|
"orientation":"orthogonal",
|
||||||
|
"properties":[
|
||||||
|
{
|
||||||
|
"name":"physics.drag.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":0.125
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.gravity.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":32
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.model",
|
||||||
|
"type":"string",
|
||||||
|
"value":"arcade"
|
||||||
|
}],
|
||||||
"renderorder":"right-down",
|
"renderorder":"right-down",
|
||||||
"tiledversion":"1.8.2",
|
"tiledversion":"1.8.2",
|
||||||
"tileheight":32,
|
"tileheight":32,
|
||||||
|
|||||||
@@ -88,6 +88,22 @@
|
|||||||
"nextlayerid":4,
|
"nextlayerid":4,
|
||||||
"nextobjectid":3,
|
"nextobjectid":3,
|
||||||
"orientation":"orthogonal",
|
"orientation":"orthogonal",
|
||||||
|
"properties":[
|
||||||
|
{
|
||||||
|
"name":"physics.drag.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.gravity.y",
|
||||||
|
"type":"float",
|
||||||
|
"value":0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name":"physics.model",
|
||||||
|
"type":"string",
|
||||||
|
"value":"arcade"
|
||||||
|
}],
|
||||||
"renderorder":"right-down",
|
"renderorder":"right-down",
|
||||||
"tiledversion":"1.8.2",
|
"tiledversion":"1.8.2",
|
||||||
"tileheight":16,
|
"tileheight":16,
|
||||||
|
|||||||
2
deps/libakerror
vendored
2
deps/libakerror
vendored
Submodule deps/libakerror updated: b5435041f2...93f5e93480
2
deps/libakgl
vendored
2
deps/libakgl
vendored
Submodule deps/libakgl updated: d87c5d2c20...652ee4cdf3
2
deps/libakstdlib
vendored
2
deps/libakstdlib
vendored
Submodule deps/libakstdlib updated: b8ef8b0dd2...06b2c8ad8a
@@ -53,7 +53,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_mapmenu(void);
|
|||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void);
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_waitforinput(void);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_waitforinput(void);
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_load_assets();
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_load_assets();
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_menupointer_logic_movement(akgl_Actor *obj, SDL_Time curtime);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_menupointer_logic_movement(akgl_Actor *obj, float32_t dt);
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_release_actor(char *actorname);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_release_actor(char *actorname);
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_actor_visible(char *actorname, bool visible);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_actor_visible(char *actorname, bool visible);
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appstate, SDL_Event *event);
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appstate, SDL_Event *event);
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
|||||||
CATCH(e, akgl_game_init());
|
CATCH(e, akgl_game_init());
|
||||||
CATCH(e, akgl_game_state_lock());
|
CATCH(e, akgl_game_state_lock());
|
||||||
CATCH(e, akgl_registry_load_properties("assets/properties.json"));
|
CATCH(e, akgl_registry_load_properties("assets/properties.json"));
|
||||||
CATCH(e, akgl_render_init2d(&renderer));
|
CATCH(e, akgl_render_init2d(renderer));
|
||||||
CATCH(e, akgl_physics_init_sidescroller(&physics));
|
CATCH(e, akgl_physics_init_arcade(physics));
|
||||||
CATCH(e, akgl_controller_list_keyboards());
|
CATCH(e, akgl_controller_list_keyboards());
|
||||||
|
|
||||||
CATCH(e, akgltest_load_assets());
|
CATCH(e, akgltest_load_assets());
|
||||||
@@ -31,7 +31,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[])
|
|||||||
AKGL_REGISTRY_CHARACTER,
|
AKGL_REGISTRY_CHARACTER,
|
||||||
"little guy",
|
"little guy",
|
||||||
NULL);
|
NULL);
|
||||||
FAIL_ZERO_BREAK(e, actorptr->basechar, AKERR_REGISTRY, "Can't load character 'little guy' from the registry");
|
FAIL_ZERO_BREAK(e, actorptr->basechar, AKGL_ERR_REGISTRY, "Can't load character 'little guy' from the registry");
|
||||||
actorptr->movement_controls_face = false;
|
actorptr->movement_controls_face = false;
|
||||||
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_LEFT);
|
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_LEFT);
|
||||||
actorptr->x = 320;
|
actorptr->x = 320;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include <akgltest.h>
|
#include <akgltest.h>
|
||||||
|
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_menupointer_logic_movement(akgl_Actor *obj, SDL_Time curtime)
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_menupointer_logic_movement(akgl_Actor *obj, float32_t dt)
|
||||||
{
|
{
|
||||||
PREPARE_ERROR(e);
|
PREPARE_ERROR(e);
|
||||||
FAIL_ZERO_RETURN(e, obj, AKERR_NULLPOINTER, "NULL actor");
|
FAIL_ZERO_RETURN(e, obj, AKERR_NULLPOINTER, "NULL actor");
|
||||||
@@ -19,6 +19,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_menupointer_logic_movement(akgl_Acto
|
|||||||
}
|
}
|
||||||
obj->y = 85 + (menuselection * 100);
|
obj->y = 85 + (menuselection * 100);
|
||||||
AKGL_BITMASK_DEL(obj->state, (AKGL_ACTOR_STATE_MOVING_UP | AKGL_ACTOR_STATE_MOVING_DOWN));
|
AKGL_BITMASK_DEL(obj->state, (AKGL_ACTOR_STATE_MOVING_UP | AKGL_ACTOR_STATE_MOVING_DOWN));
|
||||||
|
FAIL(e, AKGL_ERR_LOGICINTERRUPT, "NULL");
|
||||||
SUCCEED_RETURN(e);
|
SUCCEED_RETURN(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +33,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_init_menupointer(void)
|
|||||||
AKGL_REGISTRY_CHARACTER,
|
AKGL_REGISTRY_CHARACTER,
|
||||||
"menupointer",
|
"menupointer",
|
||||||
NULL);
|
NULL);
|
||||||
FAIL_ZERO_RETURN(e, actorptr->basechar, AKERR_REGISTRY, "menupointer character missing");
|
FAIL_ZERO_RETURN(e, actorptr->basechar, AKGL_ERR_REGISTRY, "menupointer character missing");
|
||||||
actorptr->movementlogicfunc = &akgltest_menupointer_logic_movement;
|
actorptr->movementlogicfunc = &akgltest_menupointer_logic_movement;
|
||||||
actorptr->movement_controls_face = false;
|
actorptr->movement_controls_face = false;
|
||||||
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_DOWN);
|
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_DOWN);
|
||||||
@@ -55,7 +56,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_init_player(void)
|
|||||||
AKGL_REGISTRY_CHARACTER,
|
AKGL_REGISTRY_CHARACTER,
|
||||||
"little guy",
|
"little guy",
|
||||||
NULL);
|
NULL);
|
||||||
FAIL_ZERO_RETURN(e, actorptr->basechar, AKERR_REGISTRY, "little guy character missing");
|
FAIL_ZERO_RETURN(e, actorptr->basechar, AKGL_ERR_REGISTRY, "little guy character missing");
|
||||||
actorptr->movement_controls_face = false;
|
actorptr->movement_controls_face = false;
|
||||||
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_LEFT);
|
actorptr->state = (AKGL_ACTOR_STATE_ALIVE | AKGL_ACTOR_STATE_FACE_LEFT);
|
||||||
actorptr->x = 320;
|
actorptr->x = 320;
|
||||||
@@ -69,7 +70,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_release_actor(char *actorname)
|
|||||||
{
|
{
|
||||||
PREPARE_ERROR(e);
|
PREPARE_ERROR(e);
|
||||||
akgl_Actor *actor = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, actorname, NULL);
|
akgl_Actor *actor = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, actorname, NULL);
|
||||||
FAIL_ZERO_RETURN(e, actor, AKERR_REGISTRY, "%s", actorname);
|
FAIL_ZERO_RETURN(e, actor, AKGL_ERR_REGISTRY, "%s", actorname);
|
||||||
PASS(e, akgl_heap_release_actor(actor));
|
PASS(e, akgl_heap_release_actor(actor));
|
||||||
SUCCEED_RETURN(e);
|
SUCCEED_RETURN(e);
|
||||||
}
|
}
|
||||||
|
|||||||
104
src/gamemodes.c
104
src/gamemodes.c
@@ -1,11 +1,13 @@
|
|||||||
#include <akgltest.h>
|
#include <akgltest.h>
|
||||||
|
#include <akgl/game.h>
|
||||||
|
|
||||||
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appstate, SDL_Event *event)
|
akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appstate, SDL_Event *event)
|
||||||
{
|
{
|
||||||
PREPARE_ERROR(e);
|
PREPARE_ERROR(e);
|
||||||
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());
|
||||||
@@ -16,7 +18,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appsta
|
|||||||
|
|
||||||
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("menupointer", AKGLTEST_CONTROLMAP_MENU, kbid, jsid));
|
PASS(e, akgltest_controller_bind_universal("menupointer", AKGLTEST_CONTROLMAP_MENU, kbid, jsid));
|
||||||
PASS(e, aksl_memset((void *)&gamemap, 0x00, sizeof(akgl_Tilemap)));
|
PASS(e, aksl_memset(gamemap, 0x00, sizeof(akgl_Tilemap)));
|
||||||
AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_MAPMENU);
|
AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_MAPMENU);
|
||||||
SUCCEED_RETURN(e);
|
SUCCEED_RETURN(e);
|
||||||
}
|
}
|
||||||
@@ -29,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);
|
||||||
@@ -38,17 +41,21 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app
|
|||||||
|
|
||||||
if ( menuselection == 0 ) {
|
if ( menuselection == 0 ) {
|
||||||
strcpy((char *)&dirnamebuf, "assets/imagemap.tmj");
|
strcpy((char *)&dirnamebuf, "assets/imagemap.tmj");
|
||||||
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap));
|
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap));
|
||||||
} else if ( menuselection == 1 ) {
|
} else if ( menuselection == 1 ) {
|
||||||
strcpy((char *)&dirnamebuf, "assets/tilemap.tmj");
|
strcpy((char *)&dirnamebuf, "assets/tilemap.tmj");
|
||||||
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap));
|
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap));
|
||||||
} else if ( menuselection == 2 ) {
|
} else if ( menuselection == 2 ) {
|
||||||
strcpy((char *)&dirnamebuf, "assets/sidescroller.tmj");
|
strcpy((char *)&dirnamebuf, "assets/sidescroller.tmj");
|
||||||
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap));
|
PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap));
|
||||||
} else if ( menuselection == 3 ) {
|
} else if ( menuselection == 3 ) {
|
||||||
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);
|
||||||
}
|
}
|
||||||
@@ -62,10 +69,10 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_mapmenu(void)
|
|||||||
};
|
};
|
||||||
PREPARE_ERROR(e);
|
PREPARE_ERROR(e);
|
||||||
ATTEMPT {
|
ATTEMPT {
|
||||||
CATCH(e, renderer.frame_start(&renderer))
|
CATCH(e, renderer->frame_start(renderer))
|
||||||
|
|
||||||
SDL_SetRenderDrawColor(renderer.sdl_renderer, 0, 0, 0, 255);
|
SDL_SetRenderDrawColor(renderer->sdl_renderer, 0, 0, 0, 255);
|
||||||
SDL_RenderClear(renderer.sdl_renderer);
|
SDL_RenderClear(renderer->sdl_renderer);
|
||||||
PASS(e, akgl_text_rendertextat(
|
PASS(e, akgl_text_rendertextat(
|
||||||
SDL_GetPointerProperty(
|
SDL_GetPointerProperty(
|
||||||
AKGL_REGISTRY_FONT,
|
AKGL_REGISTRY_FONT,
|
||||||
@@ -114,7 +121,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_mapmenu(void)
|
|||||||
FAIL_ZERO_BREAK(e, menupointer, AKERR_NULLPOINTER, "actor missing from registry");
|
FAIL_ZERO_BREAK(e, menupointer, AKERR_NULLPOINTER, "actor missing from registry");
|
||||||
menupointer->visible = true;
|
menupointer->visible = true;
|
||||||
CATCH(e, akgl_game_update(&opflags));
|
CATCH(e, akgl_game_update(&opflags));
|
||||||
CATCH(e, renderer.frame_end(&renderer))
|
CATCH(e, renderer->frame_end(renderer))
|
||||||
} CLEANUP {
|
} CLEANUP {
|
||||||
} PROCESS(e) {
|
} PROCESS(e) {
|
||||||
} FINISH(e, true);
|
} FINISH(e, true);
|
||||||
@@ -140,7 +147,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_waitforinput(void)
|
|||||||
40,
|
40,
|
||||||
120)
|
120)
|
||||||
);
|
);
|
||||||
PASS(e, renderer.frame_end(&renderer));
|
PASS(e, renderer->frame_end(renderer));
|
||||||
SUCCEED_RETURN(e);
|
SUCCEED_RETURN(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,26 +155,83 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void)
|
|||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
akgl_Iterator opflags;
|
akgl_Iterator opflags;
|
||||||
char fpsText[32];
|
akgl_Actor *player;
|
||||||
|
TTF_Font *gamefont;
|
||||||
|
char screenText[128];
|
||||||
|
int count;
|
||||||
|
|
||||||
PREPARE_ERROR(e);
|
PREPARE_ERROR(e);
|
||||||
PASS(e, renderer.frame_start(&renderer));
|
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));
|
PASS(e, akgl_game_update(NULL));
|
||||||
|
|
||||||
memset((char *)&fpsText, 0x00, 32);
|
memset((char *)&screenText, 0x00, 32);
|
||||||
snprintf((char *)&fpsText, 31, "FPS : %d", game.fps);
|
snprintf((char *)&screenText, 127, "FPS : %d", game.fps);
|
||||||
PASS(e, akgl_text_rendertextat(
|
PASS(e, akgl_text_rendertextat(
|
||||||
SDL_GetPointerProperty(
|
gamefont,
|
||||||
AKGL_REGISTRY_FONT,
|
(char *)&screenText,
|
||||||
"C64Pro",
|
|
||||||
NULL),
|
|
||||||
(char *)&fpsText,
|
|
||||||
(SDL_Color){255, 255, 255, 255},
|
(SDL_Color){255, 255, 255, 255},
|
||||||
0,
|
0,
|
||||||
450,
|
450,
|
||||||
10)
|
10)
|
||||||
);
|
);
|
||||||
PASS(e, renderer.frame_end(&renderer));
|
|
||||||
|
memset((char *)&screenText, 0x00, 128);
|
||||||
|
snprintf((char *)&screenText, 127, "VX: %f", player->vx);
|
||||||
|
PASS(e, akgl_text_rendertextat(
|
||||||
|
gamefont,
|
||||||
|
(char *)&screenText,
|
||||||
|
(SDL_Color){255, 255, 255, 255},
|
||||||
|
0,
|
||||||
|
10,
|
||||||
|
10)
|
||||||
|
);
|
||||||
|
memset((char *)&screenText, 0x00, 128);
|
||||||
|
snprintf((char *)&screenText, 127, "VY: %f", player->vy);
|
||||||
|
PASS(e, akgl_text_rendertextat(
|
||||||
|
gamefont,
|
||||||
|
(char *)&screenText,
|
||||||
|
(SDL_Color){255, 255, 255, 255},
|
||||||
|
0,
|
||||||
|
10,
|
||||||
|
30)
|
||||||
|
);
|
||||||
|
memset((char *)&screenText, 0x00, 128);
|
||||||
|
snprintf((char *)&screenText, 127, "DY: %f", physics->drag_y);
|
||||||
|
PASS(e, akgl_text_rendertextat(
|
||||||
|
gamefont,
|
||||||
|
(char *)&screenText,
|
||||||
|
(SDL_Color){255, 255, 255, 255},
|
||||||
|
0,
|
||||||
|
10,
|
||||||
|
60)
|
||||||
|
);
|
||||||
|
|
||||||
|
memset((char *)&screenText, 0x00, 128);
|
||||||
|
snprintf((char *)&screenText, 127, "PX: %f", player->x);
|
||||||
|
PASS(e, akgl_text_rendertextat(
|
||||||
|
gamefont,
|
||||||
|
(char *)&screenText,
|
||||||
|
(SDL_Color){255, 255, 255, 255},
|
||||||
|
0,
|
||||||
|
220,
|
||||||
|
10)
|
||||||
|
);
|
||||||
|
memset((char *)&screenText, 0x00, 128);
|
||||||
|
snprintf((char *)&screenText, 127, "PY: %f", player->y);
|
||||||
|
PASS(e, akgl_text_rendertextat(
|
||||||
|
gamefont,
|
||||||
|
(char *)&screenText,
|
||||||
|
(SDL_Color){255, 255, 255, 255},
|
||||||
|
0,
|
||||||
|
220,
|
||||||
|
30)
|
||||||
|
);
|
||||||
|
|
||||||
|
PASS(e, renderer->frame_end(renderer));
|
||||||
SUCCEED_RETURN(e);
|
SUCCEED_RETURN(e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user