diff --git a/ROADMAP.txt b/ROADMAP.txt index 86a27dc..843a2a6 100644 --- a/ROADMAP.txt +++ b/ROADMAP.txt @@ -1,5 +1,6 @@ ------------ Tyra's v2.0 roadmap to publish on GitHub ------------ -- [General] Tyra version +- [General] Allow to edit all data from mesh/texture +- [General] Tyra version, render it on start - [Renderer] Fog - [Demo] Create cool demo which will show all features of Tyra - [General] CI in Github via docker image diff --git a/demo/inc/states/game/game_state.hpp b/demo/inc/states/game/game_state.hpp index b8b5a3f..5e8e224 100644 --- a/demo/inc/states/game/game_state.hpp +++ b/demo/inc/states/game/game_state.hpp @@ -42,9 +42,9 @@ class GameState : public State { u8 fpsChecker; GameRenderer renderer; - Player player; - Terrain terrain; - DebugObject dbgObj; + Player* player; + Terrain* terrain; + DebugObject* dbgObj; }; } // namespace Demo diff --git a/demo/src/demo_game.cpp b/demo/src/demo_game.cpp index 5774c32..532c20f 100644 --- a/demo/src/demo_game.cpp +++ b/demo/src/demo_game.cpp @@ -15,7 +15,7 @@ namespace Demo { DemoGame::DemoGame(Engine* t_engine) - : engine(t_engine), stateManager(STATE_GAME, STATE_EXIT) {} + : engine(t_engine), stateManager(STATE_INTRO, STATE_EXIT) {} DemoGame::~DemoGame() {} void DemoGame::init() { diff --git a/demo/src/states/game/game_state.cpp b/demo/src/states/game/game_state.cpp index 2816f9f..89a3a2c 100644 --- a/demo/src/states/game/game_state.cpp +++ b/demo/src/states/game/game_state.cpp @@ -14,11 +14,7 @@ namespace Demo { GameState::GameState(Engine* t_engine) - : State(t_engine), - renderer(&t_engine->renderer), - player(t_engine), - terrain(&t_engine->renderer.core.texture.repository), - dbgObj(&t_engine->renderer.core.texture.repository) { + : State(t_engine), renderer(&t_engine->renderer) { state = STATE_GAME; _wantFinish = false; initialized = false; @@ -31,12 +27,20 @@ void GameState::onStart() { TYRA_LOG("Game. RAM: ", engine->info.getAvailableRAM(), "MB"); engine->audio.stopSong(); + + player = new Player(engine); + terrain = new Terrain(&engine->renderer.core.texture.repository); + dbgObj = new DebugObject(&engine->renderer.core.texture.repository); + initialized = true; } GlobalStateType GameState::onFinish() { if (!initialized) return STATE_EXIT; + delete player; + delete terrain; + delete dbgObj; initialized = false; return STATE_EXIT; @@ -48,20 +52,26 @@ void GameState::update() { fpsChecker = 0; } - auto cameraInfo = player.getCameraInfo(); + // TODO: Get next player position and calculate all stuf for NEXT position + // (not current!) + // TODO: Fix camera for heightmap + // TODO: Change map + // TODO: Implement collision + + auto cameraInfo = player->getCameraInfo(); engine->renderer.beginFrame(cameraInfo); - float terrainHeight = terrain.getHeightOffset(player.getPosition()); - player.update(terrainHeight); + float terrainHeight = terrain->getHeightOffset(player->getPosition()); + player->update(terrainHeight); - dbgObj.setPosition(*cameraInfo.looksAt); + dbgObj->setPosition(*cameraInfo.looksAt); renderer.clear(); { - renderer.add(player.staticPairs); - renderer.add(player.dynamicPairs); - renderer.add(terrain.pair); - renderer.add(dbgObj.pair); + renderer.add(player->staticPairs); + renderer.add(player->dynamicPairs); + renderer.add(terrain->pair); + renderer.add(dbgObj->pair); } renderer.render(); diff --git a/demo/src/states/intro/intro_state.cpp b/demo/src/states/intro/intro_state.cpp index 063dc2c..1505cc3 100644 --- a/demo/src/states/intro/intro_state.cpp +++ b/demo/src/states/intro/intro_state.cpp @@ -35,7 +35,7 @@ void IntroState::onStart() { engine->audio.loadSong(FileUtils::fromCwd("intro/intro.wav")); engine->audio.setSongLoop(false); engine->audio.setSongVolume(80); - // engine->audio.playSong(); + engine->audio.playSong(); stateManager.add(new IntroPs2DevState(engine)); stateManager.add(new IntroTyraState(engine)); diff --git a/docs/install/README.MD b/docs/install/README.MD index 3f559ed..ba2237e 100644 --- a/docs/install/README.MD +++ b/docs/install/README.MD @@ -22,4 +22,4 @@ git clone https://github.com/h4570/tyra.git 5. In `c_cpp_properties.json` fix all `YOUR-INTELLISENSE-PATH` with path from point 2. 6. Click `CTRL+SHIFT+P`, type `Tasks: Run task` and run `Start docker container` - Repeat this step every time you want to start working with Tyra (every reboot) 7. Click `CTRL+SHIFT+P`, type `Tasks: Run build task` -8. Tyra should automatically compile engine, `wellinator` sample and run `PCSX2`. If you want to compile & run other sample, please change `buildDirectory` in `settings.json` \ No newline at end of file +8. Tyra should automatically compile engine, `demo` game and run `PCSX2`. If you want to compile & run tutorials, please change `buildDirectory` in `settings.json` to example `tutorials/01-hello` \ No newline at end of file