git repos / saland

commit 95a48623

sago007 · 2017-07-29 15:05
95a4862399283a15e9292e53204c903dca6260e7 patch · browse files
parent ad2f55d5d86c9e430d0c1bc4e2594f26c7a24cf4

Now draws the rectangles

Changed files

M src/sagotmx/tmx_struct.h before
M src/saland/Game.cpp before
diff --git a/src/sagotmx/tmx_struct.h b/src/sagotmx/tmx_struct.h index 4aaf19e..69bd8fc 100644 --- a/src/sagotmx/tmx_struct.h +++ b/src/sagotmx/tmx_struct.h
@@ -388,6 +388,7 @@ inline TileMap string2tilemap(const std::string& tmx_content) {
getElement(object_node, "eclipse", to.isEcplise);
group.objects.push_back(to);
}
+ m.object_groups.push_back(group);
}
return m;
}
diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp index 71d57aa..1b6218e 100644 --- a/src/saland/Game.cpp +++ b/src/saland/Game.cpp
@@ -33,6 +33,14 @@ static void DrawLayer(SDL_Renderer* renderer, SDL_Texture* texture, const sago::
}
}
+static void DrawOjbectGroup (SDL_Renderer* renderer, const sago::tiled::TileMap& tm, size_t object_group, int topx, int topy) {
+ const sago::tiled::TileObjectGroup& group = tm.object_groups.at(object_group);
+ for (const sago::tiled::TileObject& o : group.objects) {
+ rectangleRGBA(renderer, o.x - topx, o.y - topy,
+ o.x+o.width-topx, o.y + o.height - topy, 255, 255, 0, 255);
+ }
+}
+
struct Game::GameImpl {
std::vector<std::shared_ptr<Placeable> > placeables;
float time = 0.0;
@@ -106,6 +114,9 @@ void Game::Draw(SDL_Renderer* target) {
for (size_t i = 0; i < data->world.tm.layers.size(); ++i ) {
DrawLayer(target, texture, data->world.tm, i, data->topx, data->topy);
}
+ for (size_t i = 0; i <data->world.tm.object_groups.size(); ++i) {
+ DrawOjbectGroup(target, data->world.tm, i, data->topx, data->topy);
+ }
int mousebox_x = data->world_mouse_x - data->world_mouse_x%32 - data->topx;
int mousebox_y = data->world_mouse_y - data->world_mouse_y%32 - data->topy;
rectangleRGBA(globalData.screen, mousebox_x, mousebox_y,