Browse Source

Lesson 13.6

Godzil 3 years ago
parent
commit
495be07a0b
2 changed files with 11 additions and 8 deletions
  1. 7 5
      source/Game.cpp
  2. 4 3
      source/include/Components/Sprite.h

+ 7 - 5
source/Game.cpp

@@ -125,8 +125,10 @@ void Game::LoadLevel(int level)
 
     assert(mapFile.is_open());
 
-    for (int y = 0; y < mapNumRows; y++) {
-        for (int x = 0; x < mapNumCols; x++) {
+    for (int y = 0; y < mapNumRows; y++)
+    {
+        for (int x = 0; x < mapNumCols; x++)
+        {
             char ch[2] = {0, 0};
             mapFile.get(ch[0]);
             int srcRectY = atoi(ch) * tileSize;
@@ -136,7 +138,7 @@ void Game::LoadLevel(int level)
 
             Entity tile = registry->createEntity();
             tile.addComponent<TransformComponent>(glm::vec2(x * (tileScale * tileSize), y * (tileScale * tileSize)), glm::vec2(tileScale, tileScale), 0.0);
-            tile.addComponent<SpriteComponent>("main-tileset", tileSize, tileSize, srcRectX, srcRectY);
+            tile.addComponent<SpriteComponent>("main-tileset", 0, tileSize, tileSize, srcRectX, srcRectY);
         }
     }
     mapFile.close();
@@ -144,12 +146,12 @@ void Game::LoadLevel(int level)
     Entity tank = this->registry->createEntity();
     tank.addComponent<TransformComponent>(glm::vec2(10, 30), glm::vec2(1, 1), 0);
     tank.addComponent<RigidBodyComponent>(glm::vec2(40, 0));
-    tank.addComponent<SpriteComponent>("tank-image", 32, 32);
+    tank.addComponent<SpriteComponent>("tank-image", 2, 32, 32);
 
     Entity truck = this->registry->createEntity();
     truck.addComponent<TransformComponent>(glm::vec2(50, 100), glm::vec2(1, 1), 0);
     truck.addComponent<RigidBodyComponent>(glm::vec2(0, 50));
-    truck.addComponent<SpriteComponent>("truck-image", 32, 32);
+    truck.addComponent<SpriteComponent>("truck-image", 1, 32, 32);
 }
 
 void Game::Setup()

+ 4 - 3
source/include/Components/Sprite.h

@@ -19,13 +19,14 @@ struct SpriteComponent
     std::string assetId;
     uint32_t width;
     uint32_t height;
+    int32_t zIndex;
     SDL_Rect sourceRect;
 
     explicit SpriteComponent(std::string assetId = "",
+                             int32_t zIndex = 0,
                              uint32_t width = 0, uint32_t height = 0,
-                             uint32_t sourceRectX = 0, uint32_t sourceRectY = 0): assetId(assetId),
-                                                                                  width(width),
-                                                                                  height(height)
+                             uint32_t sourceRectX = 0, uint32_t sourceRectY = 0): assetId(assetId), width(width),
+                                                                                  height(height), zIndex(zIndex)
     {
         this->sourceRect =
         {