12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "FlyWeifht.h"
- #include <list>
- #include <spdlog.h>
- #include <vector>
- void testFlyWeight()
- {
- /* 创建炸弹工厂 */
- BombFactory bombFactory;
- /* 需要的炸弹列表 */
- std::vector<std::tuple<std::string, std::string, int, int, int>> bombList = {
- {"普通炸弹", "红色", 10, 20, 5},
- {"普通炸弹", "红色", 15, 25, 5},
- {"普通炸弹", "蓝色", 20, 30, 7},
- {"普通炸弹", "蓝色", 25, 35, 7},
- {"普通炸弹", "红色", 30, 40, 5},
- {"唯一炸弹", "金色", 50, 60, 10}
- };
- std::list<LaunchBomb*> launchedBombs;
- for(auto it : bombList)
- {
- std::string type = std::get<0>(it);
- std::string color = std::get<1>(it);
- int x = std::get<2>(it);
- int y = std::get<3>(it);
- int speed = std::get<4>(it);
- if (type == "唯一炸弹")
- {
- UniqueBomb* pUniqueBomb = new UniqueBomb(type, color);
- pUniqueBomb->move(x, y, speed);
- LaunchBomb* bomb = new LaunchBomb(pUniqueBomb);
- bomb->move(x, y);
- launchedBombs.push_back(bomb);
- SPDLOG_INFO("-----------------------------");
- }
- else
- {
- ShareBombBody* pShareBombBody = bombFactory.getShareBombBody(type, color);
- pShareBombBody->move(x, y, speed);
- LaunchBomb* bomb = new LaunchBomb(pShareBombBody);
- bomb->move(x, y);
- launchedBombs.push_back(bomb);
- SPDLOG_INFO("-----------------------------");
- }
- }
- }
|