fixed frustum culling, static game class

This commit is contained in:
Sandro Sobczyński
2020-11-04 13:20:58 +01:00
parent 5399b1744f
commit 02560f2d6f
19 changed files with 73 additions and 70 deletions
+15 -15
View File
@@ -18,7 +18,7 @@
const u8 WATER_TILES_COUNT = 64;
Ari::Ari(const Engine &t_engine) : engine(t_engine), camera(&engine.screen)
Ari::Ari(Engine *t_engine) : engine(t_engine), camera(&engine->screen)
{
waterFloors = new Mesh[WATER_TILES_COUNT];
spirals = new Point[WATER_TILES_COUNT];
@@ -33,13 +33,13 @@ Ari::~Ari() {}
void Ari::onInit()
{
engine.renderer->setCameraDefinitions(&camera.worldView, &camera.unitCirclePosition, camera.planes);
engine.audio.init(0);
engine.audio.setVolume(40);
engine.audio.loadSong("MOV-CIRC.WAV");
engine.audio.play();
engine->renderer->setCameraDefinitions(&camera.worldView, &camera.unitCirclePosition, camera.planes);
engine->audio.init(0);
engine->audio.setVolume(40);
engine->audio.loadSong("MOV-CIRC.WAV");
engine->audio.play();
texRepo = engine.renderer->getTextureRepository();
texRepo = engine->renderer->getTextureRepository();
island.loadDff("sunnyisl/", "sunnyisl", 0.1F, false);
island.rotation.x = -1.6F;
@@ -86,15 +86,15 @@ void Ari::initBulb()
void Ari::onUpdate()
{
if (engine.pad.isCrossClicked)
printf("FPS:%f\n", engine.fps);
camera.update(engine.pad, player.mesh);
engine.renderer->draw(skybox);
engine.renderer->draw(island);
engine.renderer->draw(islandAddons);
engine.renderer->draw(player.mesh);
if (engine->pad.isCrossClicked)
printf("FPS:%f\n", engine->fps);
camera.update(engine->pad, player.mesh);
engine->renderer->draw(skybox);
engine->renderer->draw(island);
engine->renderer->draw(islandAddons);
engine->renderer->draw(player.mesh);
for (u8 i = 0; i < WATER_TILES_COUNT; i++)
engine.renderer->draw(waterFloors[i]);
engine->renderer->draw(waterFloors[i]);
}
void Ari::calcSpiral(int X, int Y)
+2 -2
View File
@@ -23,13 +23,13 @@ class Ari : public Game
{
public:
Ari(const Engine &t_engine);
Ari(Engine *t_engine);
~Ari();
void onInit();
void onUpdate();
Engine engine;
Engine *engine;
private:
void initBulb();
+2 -2
View File
@@ -13,8 +13,8 @@
int main()
{
Engine engine = Engine();
Ari game = Ari(engine);
game.engine.init(&game, 40000);
Ari game = Ari(&engine);
game.engine->init(&game, 40000);
SleepThread();
return 0;
}
+16 -15
View File
@@ -16,8 +16,8 @@
const u8 FLOORS_COUNT = 64; // Temp change it also in floor_manager.hpp
Floors::Floors(const Engine &t_engine)
: engine(t_engine), floorManager(FLOORS_COUNT), camera(&engine.screen) {}
Floors::Floors(Engine *t_engine)
: engine(t_engine), floorManager(FLOORS_COUNT), camera(&t_engine->screen) {}
Floors::~Floors() {}
@@ -27,13 +27,14 @@ Floors::~Floors() {}
void Floors::onInit()
{
engine.renderer->setCameraDefinitions(&camera.worldView, &camera.unitCirclePosition, camera.planes);
engine.audio.init(2);
engine.audio.addListener(&floorManager);
engine.audio.addListener(&lightManager);
engine.audio.loadSong("NF-CHILL.WAV");
engine.audio.play();
texRepo = engine.renderer->getTextureRepository();
engine->renderer->setCameraDefinitions(&camera.worldView, &camera.unitCirclePosition, camera.planes);
engine->audio.init(2);
engine->audio.addListener(&floorManager);
engine->audio.addListener(&lightManager);
engine->audio.loadSong("NF-CHILL.WAV");
engine->audio.setVolume(1);
engine->audio.play();
texRepo = engine->renderer->getTextureRepository();
texRepo->addByMesh("warrior/", player.mesh);
texRepo->addByMesh("floor/", floorManager.floors[0].mesh);
for (u32 i = 1; i < floorManager.floorAmount; i++)
@@ -43,13 +44,13 @@ void Floors::onInit()
void Floors::onUpdate()
{
if (engine.pad.isCrossClicked)
printf("FPS:%f\n", engine.fps);
if (engine->pad.isCrossClicked)
printf("FPS:%f\n", engine->fps);
lightManager.update();
camera.update(engine.pad, player.mesh);
camera.update(engine->pad, player.mesh);
floorManager.update(player);
player.update(engine.pad, camera, floorManager);
engine.renderer->draw(player.mesh);
player.update(engine->pad, camera, floorManager);
engine->renderer->draw(player.mesh);
for (u8 i = 0; i < FLOORS_COUNT; i++)
engine.renderer->drawByPath3(floorManager.floors[i].mesh, lightManager.bulbs, lightManager.bulbsCount);
engine->renderer->drawByPath3(floorManager.floors[i].mesh, lightManager.bulbs, lightManager.bulbsCount);
}
+2 -2
View File
@@ -24,13 +24,13 @@ class Floors : public Game
{
public:
Floors(const Engine &t_engine);
Floors(Engine *t_engine);
~Floors();
void onInit();
void onUpdate();
Engine engine;
Engine *engine;
private:
TextureRepository *texRepo;
+2 -2
View File
@@ -13,8 +13,8 @@
int main()
{
Engine engine = Engine();
Floors game = Floors(engine);
game.engine.init(&game, 40000);
Floors game = Floors(&engine);
game.engine->init(&game, 40000);
SleepThread();
return 0;
}
@@ -106,7 +106,6 @@ void FloorManager::update(Player &t_player)
/** Called by audio thread */
void FloorManager::onAudioTick()
{
printf("Hit!\n");
if (audioTick++ > 16)
{
if (audioMode == 0)