Replace hardcoded scene values to enum

main
En Yi 2024-07-07 16:48:55 +08:00
parent 0c461d3167
commit 33de816841
5 changed files with 23 additions and 12 deletions

10
main.c
View File

@ -80,11 +80,11 @@ int main(void)
level_sel_scene.data.level_pack = pack;
init_level_select_scene(&level_sel_scene);
scenes[0] = &menu_scene.scene;
scenes[1] = &level_sel_scene.scene;
scenes[2] = &level_scene.scene;
scenes[3] = &sandbox_scene.scene;
change_scene(&engine, 0);
scenes[MAIN_MENU_SCENE] = &menu_scene.scene;
scenes[LEVEL_SELECT_SCENE] = &level_sel_scene.scene;
scenes[GAME_SCENE] = &level_scene.scene;
scenes[SANDBOX_SCENE] = &sandbox_scene.scene;
change_scene(&engine, MAIN_MENU_SCENE);
const float DT = 1.0f/60.0f;
while (!WindowShouldClose())

View File

@ -35,9 +35,11 @@ typedef enum SFXTag {
COIN_SFX,
} SFXTag_t;
//typedef enum SceneType {
// LEVEL_SCENE = 0,
// MENU_SCENE,
//}SceneType_t;
typedef enum SceneType {
MAIN_MENU_SCENE = 0,
LEVEL_SELECT_SCENE,
GAME_SCENE,
SANDBOX_SCENE,
}SceneType_t;
#endif

View File

@ -89,7 +89,7 @@ static void level_do_action(Scene_t* scene, ActionType_t action, bool pressed)
case ACTION_EXIT:
if(scene->engine != NULL)
{
change_scene(scene->engine, 0);
change_scene(scene->engine, MAIN_MENU_SCENE);
}
break;
default:

View File

@ -1,4 +1,5 @@
#include "scene_impl.h"
#include "assets_tag.h"
#include "raymath.h"
#include <stdio.h>
@ -42,6 +43,12 @@ static void level_select_do_action(Scene_t* scene, ActionType_t action, bool pre
data->scroll = Clamp(data->scroll, 0, 400);
}
break;
case ACTION_EXIT:
if(scene->engine != NULL)
{
change_scene(scene->engine, MAIN_MENU_SCENE);
}
break;
default:
break;
}
@ -84,6 +91,7 @@ void init_level_select_scene(LevelSelectScene_t* scene)
sc_array_add(&scene->scene.systems, &level_select_render_func);
sc_map_put_64(&scene->scene.action_map, KEY_UP, ACTION_UP);
sc_map_put_64(&scene->scene.action_map, KEY_DOWN, ACTION_DOWN);
sc_map_put_64(&scene->scene.action_map, KEY_Q, ACTION_EXIT);
}
void free_level_select_scene(LevelSelectScene_t* scene)
{

View File

@ -1,4 +1,5 @@
#include "scene_impl.h"
#include "assets_tag.h"
#include "raymath.h"
#include <stdio.h>
@ -21,10 +22,10 @@ static void exec_component_function(Scene_t* scene, int sel)
switch(sel)
{
case 0:
change_scene(scene->engine, 1);
change_scene(scene->engine, LEVEL_SELECT_SCENE);
break;
case 1:
change_scene(scene->engine, 2);
change_scene(scene->engine, SANDBOX_SCENE);
break;
case 3:
scene->state = 0;