|
@@ -28,6 +28,7 @@
|
|
|
#include <Components/CameraFollow.h>
|
|
|
#include <Components/ProjectileEmitter.h>
|
|
|
#include <Components/Heakth.h>
|
|
|
+#include <Components/TextLabel.h>
|
|
|
|
|
|
#include <Systems/Movement.h>
|
|
|
#include <Systems/Render.h>
|
|
@@ -38,6 +39,7 @@
|
|
|
#include <Systems/CameraMovement.h>
|
|
|
#include <Systems/ProjectileEmit.h>
|
|
|
#include <Systems/ProjectileLifeCycle.h>
|
|
|
+#include <Systems/RenderText.h>
|
|
|
|
|
|
uint32_t Game::windowsWidth = 0;
|
|
|
uint32_t Game::windowsHeight = 0;
|
|
@@ -70,6 +72,13 @@ void Game::Initialize()
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ ret = TTF_Init();
|
|
|
+ if (ret)
|
|
|
+ {
|
|
|
+ Logger::Critical("SDL_ttf Initialisation error.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
SDL_GetCurrentDisplayMode(0, &displayMode);
|
|
|
Game::windowsWidth = 800; //displayMode.w;
|
|
|
Game::windowsHeight = 600; //displayMode.h;
|
|
@@ -145,6 +154,7 @@ void Game::LoadLevel(int level)
|
|
|
this->registry->addSystem<CameraMovementSystem>();
|
|
|
this->registry->addSystem<ProjectileEmitSystem>();
|
|
|
this->registry->addSystem<ProjectileLifeCycleSystem>();
|
|
|
+ this->registry->addSystem<RenderTextSystem>();
|
|
|
|
|
|
this->assetStore->addTexture(this->renderer, "tank-image", "assets/images/tank-panther-right.png");
|
|
|
this->assetStore->addTexture(this->renderer, "truck-image", "assets/images/truck-ford-right.png");
|
|
@@ -153,9 +163,9 @@ void Game::LoadLevel(int level)
|
|
|
this->assetStore->addTexture(this->renderer, "radar-image", "assets/images/radar.png");
|
|
|
this->assetStore->addTexture(this->renderer, "bullet-image", "assets/images/bullet.png");
|
|
|
|
|
|
- this->assetStore->addFont("charriot-font", "assets/fonts/charriot.ttf", 14);
|
|
|
- this->assetStore->addFont("arial-font", "assets/fonts/charriot.ttf", 14);
|
|
|
- this->assetStore->addFont("pico8-font", "assets/fonts/charriot.ttf", 14);
|
|
|
+ this->assetStore->addFont("charriot-font", "assets/fonts/charriot.ttf", 20);
|
|
|
+ this->assetStore->addFont("arial-font", "assets/fonts/charriot.ttf", 20);
|
|
|
+ this->assetStore->addFont("pico8-font", "assets/fonts/charriot.ttf", 20);
|
|
|
|
|
|
Logger::Debug("struct SpriteComponent size is %d", sizeof(struct SpriteComponent));
|
|
|
|
|
@@ -193,8 +203,8 @@ void Game::LoadLevel(int level)
|
|
|
Game::mapHeight = mapNumRows * tileSize * tileScale;
|
|
|
|
|
|
Entity chopper = this->registry->createEntity();
|
|
|
- chopper.addComponent<TransformComponent>(glm::vec2(10, 100), glm::vec2(1, 1), 0);
|
|
|
- chopper.addComponent<SpriteComponent>("chopper-image", 2, 32, 32);
|
|
|
+ chopper.addComponent<TransformComponent>(glm::vec2(240, 110), glm::vec2(1, 1), 0);
|
|
|
+ chopper.addComponent<SpriteComponent>("chopper-image", 1, 32, 32);
|
|
|
chopper.addComponent<RigidBodyComponent>(glm::vec2(0, 0));
|
|
|
chopper.addComponent<BoxColliderComponent>(32, 32);
|
|
|
chopper.addComponent<AnimationComponent>(2, 15, true);
|
|
@@ -213,26 +223,26 @@ void Game::LoadLevel(int level)
|
|
|
radar.addComponent<AnimationComponent>(8, 5, true);
|
|
|
|
|
|
Entity tank = this->registry->createEntity();
|
|
|
- tank.addComponent<TransformComponent>(glm::vec2(500, 10), glm::vec2(1, 1), 0);
|
|
|
- tank.addComponent<RigidBodyComponent>(glm::vec2(-3, 0));
|
|
|
+ tank.addComponent<TransformComponent>(glm::vec2(500, 500), glm::vec2(1, 1), 0);
|
|
|
+ tank.addComponent<RigidBodyComponent>(glm::vec2(0, 0));
|
|
|
tank.addComponent<SpriteComponent>("tank-image", 1, 32, 32);
|
|
|
tank.addComponent<BoxColliderComponent>(32, 32);
|
|
|
- tank.addComponent<ProjectileEmitterComponent>(glm::vec2(100, 0), 5000, 3000, 10, false);
|
|
|
+ tank.addComponent<ProjectileEmitterComponent>(glm::vec2(100, 0), 3000, 5000, 10, false);
|
|
|
tank.addComponent<HealthComponent>(100);
|
|
|
tank.group("enemies");
|
|
|
|
|
|
Entity truck = this->registry->createEntity();
|
|
|
- truck.addComponent<TransformComponent>(glm::vec2(10, 10), glm::vec2(1, 1), 0);
|
|
|
- truck.addComponent<RigidBodyComponent>(glm::vec2(2, 0));
|
|
|
- truck.addComponent<SpriteComponent>("truck-image", 1, 32, 32);
|
|
|
+ truck.addComponent<TransformComponent>(glm::vec2(120, 500), glm::vec2(1, 1), 0);
|
|
|
+ truck.addComponent<RigidBodyComponent>(glm::vec2(0, 0));
|
|
|
+ truck.addComponent<SpriteComponent>("truck-image", 2, 32, 32);
|
|
|
truck.addComponent<BoxColliderComponent>(32, 32);
|
|
|
- truck.addComponent<ProjectileEmitterComponent>(glm::vec2(0, 100), 2000, 5000, 10, false);
|
|
|
+ truck.addComponent<ProjectileEmitterComponent>(glm::vec2(0, -100), 2000, 5000, 10, false);
|
|
|
truck.addComponent<HealthComponent>(100);
|
|
|
truck.group("enemies");
|
|
|
|
|
|
+ SDL_Color green = { 64, 255, 127, 255 };
|
|
|
Entity label = this->registry->createEntity();
|
|
|
- label.addComponent<TransformComponent>(10, 10, glm::vec2(0, 0), 0);
|
|
|
- //label.addComponent<TextLabelComponent>( ... );
|
|
|
+ label.addComponent<TextLabelComponent>(glm::vec2(this->windowsWidth/2 - 60, 10), "SUPER CHOPPER BROS 1.0", "charriot-font", green);
|
|
|
}
|
|
|
|
|
|
void Game::Setup()
|
|
@@ -307,7 +317,7 @@ void Game::Render()
|
|
|
SDL_RenderClear(this->renderer);
|
|
|
|
|
|
registry->getSystem<RenderSystem>().update(this->renderer, this->assetStore, this->camera);
|
|
|
-
|
|
|
+ registry->getSystem<RenderTextSystem>().update(this->renderer, this->assetStore, this->camera);
|
|
|
if (this->isDebug)
|
|
|
{
|
|
|
registry->getSystem<CollisionSystem>().debugRender(this->renderer, this->camera);
|