diff options
author | nathan <nathansmith@disroot.org> | 2025-07-04 13:00:08 +0000 |
---|---|---|
committer | nathan <nathansmith@disroot.org> | 2025-07-04 13:00:08 +0000 |
commit | 2b2b69ee31f00aa46ab6baa967e12437ce7334d1 (patch) | |
tree | 1ba7fd19c30bb33ef20f55afc84ccfff30460969 /src/game.c | |
parent | de3a92fb2bde8cbec688f788c53f7ba52d6a723a (diff) | |
download | FindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.tar.gz FindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.tar.bz2 FindThings-2b2b69ee31f00aa46ab6baa967e12437ce7334d1.zip |
Heightmap, player, and more concepts
Diffstat (limited to 'src/game.c')
-rw-r--r-- | src/game.c | 54 |
1 files changed, 53 insertions, 1 deletions
@@ -3,23 +3,75 @@ void initGame(Game* game) { + game->sceneId = GAME_SCENE; + // Settings. game->settings = defaultSettings(); // Window. InitWindow(game->settings.windowWidth, game->settings.windowHeight, "Find Things"); + SetWindowState(FLAG_WINDOW_RESIZABLE); + + // Assets. + initAssets(&game->assets); + + // Player. + game->player = createPlayer(); + game->player.position = (Vector3){50.0, 30.0, 50.0}; + + // Heightmap. + Mesh heightmapMesh = GenMeshHeightmap(game->assets.images[HEIGHT_MAP_IMAGE], + (Vector3){100.0, 30.0, 100.0}); + game->heightmap = LoadModelFromMesh(heightmapMesh); + game->heightmap.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = + game->assets.textures[HEIGHT_MAP_TEXTURE]; + + DisableCursor(); +} + +void updateMainMenuScene(Game* game) +{ + ClearBackground(BLACK); +} + +void updateGameScene(Game* game) +{ + ClearBackground(BLACK); + + BeginMode3D(game->player.camera); + + updatePlayer(&game->player, game); + + DrawModel(game->heightmap, Vector3Zero(), 1.0, WHITE); + + EndMode3D(); } void updateGame(Game* game) { BeginDrawing(); - ClearBackground(RAYWHITE); + + switch (game->sceneId) + { + case MAIN_MENU_SCENE: + updateMainMenuScene(game); + break; + case GAME_SCENE: + updateGameScene(game); + break; + default: + break; + } + + DrawFPS(0, 0); EndDrawing(); } void closeGame(Game* game) { + closeAssets(&game->assets); + UnloadModel(game->heightmap); CloseWindow(); } |