|
@@ -26,6 +26,7 @@
|
|
|
#include <Components/BoxCollider.h>
|
|
|
#include <Components/KeyboardControl.h>
|
|
|
#include <Components/CameraFollow.h>
|
|
|
+#include <Components/ProjectileEmitter.h>
|
|
|
|
|
|
#include <Systems/Movement.h>
|
|
|
#include <Systems/Render.h>
|
|
@@ -33,12 +34,13 @@
|
|
|
#include <Systems/Collision.h>
|
|
|
#include <Systems/Damage.h>
|
|
|
#include <Systems/KeyboardMovement.h>
|
|
|
+#include <Systems/CameraMovement.h>
|
|
|
+#include <Systems/ProjectileEmit.h>
|
|
|
|
|
|
uint32_t Game::windowsWidth = 0;
|
|
|
uint32_t Game::windowsHeight = 0;
|
|
|
uint32_t Game::mapWidth = 0;
|
|
|
uint32_t Game::mapHeight = 0;
|
|
|
-#include <Systems/CameraMovement.h>
|
|
|
|
|
|
Game::Game()
|
|
|
{
|
|
@@ -130,12 +132,14 @@ void Game::LoadLevel(int level)
|
|
|
this->registry->addSystem<DamageSystem>();
|
|
|
this->registry->addSystem<KeyboardMovementSystem>();
|
|
|
this->registry->addSystem<CameraMovementSystem>();
|
|
|
+ this->registry->addSystem<ProjectileEmitSystem>();
|
|
|
|
|
|
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");
|
|
|
this->assetStore->addTexture(this->renderer, "chopper-image", "assets/images/chopper-spritesheet.png");
|
|
|
this->assetStore->addTexture(this->renderer, "main-tileset", "assets/tilemaps/jungle.png");
|
|
|
this->assetStore->addTexture(this->renderer, "radar-image", "assets/images/radar.png");
|
|
|
+ this->assetStore->addTexture(this->renderer, "bullet-image", "assets/images/bullet.png");
|
|
|
|
|
|
Logger::Debug("struct SpriteComponent size is %d", sizeof(struct SpriteComponent));
|
|
|
|
|
@@ -188,15 +192,17 @@ void Game::LoadLevel(int level)
|
|
|
|
|
|
Entity tank = this->registry->createEntity();
|
|
|
tank.addComponent<TransformComponent>(glm::vec2(500, 10), glm::vec2(1, 1), 0);
|
|
|
- tank.addComponent<RigidBodyComponent>(glm::vec2(-30, 0));
|
|
|
+ tank.addComponent<RigidBodyComponent>(glm::vec2(-3, 0));
|
|
|
tank.addComponent<SpriteComponent>("tank-image", 1, 32, 32);
|
|
|
tank.addComponent<BoxColliderComponent>(32, 32, glm::vec2(0, 0));
|
|
|
+ tank.addComponent<ProjectileEmitterComponent>(glm::vec2(100, 0), 5000, 10000, 0, false);
|
|
|
|
|
|
Entity truck = this->registry->createEntity();
|
|
|
truck.addComponent<TransformComponent>(glm::vec2(10, 10), glm::vec2(1, 1), 0);
|
|
|
- truck.addComponent<RigidBodyComponent>(glm::vec2(20, 0));
|
|
|
+ truck.addComponent<RigidBodyComponent>(glm::vec2(2, 0));
|
|
|
truck.addComponent<SpriteComponent>("truck-image", 1, 32, 32);
|
|
|
truck.addComponent<BoxColliderComponent>(32, 32, glm::vec2(0, 0));
|
|
|
+ truck.addComponent<ProjectileEmitterComponent>(glm::vec2(0, 100), 2000, 10000, 0, false);
|
|
|
}
|
|
|
|
|
|
void Game::Setup()
|
|
@@ -225,6 +231,7 @@ void Game::Update()
|
|
|
registry->getSystem<MovementSystem>().update(deltaTime);
|
|
|
registry->getSystem<AnimationSystem>().update();
|
|
|
registry->getSystem<CollisionSystem>().update(this->eventBus);
|
|
|
+ registry->getSystem<ProjectileEmitSystem>().update(this->registry);
|
|
|
registry->getSystem<CameraMovementSystem>().update(this->camera);
|
|
|
}
|
|
|
|