本文整理汇总了C++中LayerManager::add方法的典型用法代码示例。如果您正苦于以下问题:C++ LayerManager::add方法的具体用法?C++ LayerManager::add怎么用?C++ LayerManager::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LayerManager
的用法示例。
在下文中一共展示了LayerManager::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
void Gamestep3::init()
{
window.setMouseCursorVisible(true);
layerManager.add(&white1l);
layerManager.add(&white2l);
layerManager.add(&layerBackground);
layerManager.add(&layerCell);
layerManager.add(&layerAgent);
// Generation de la map de cellules
const sf::Vector2u viewport = window.getSize();
const sf::Vector2u margins(100, 100);
const int maxRadius = 50;
const int minSpacing = 5;
const int idealCols = 10;
const int idealRows = 5;
int W = viewport.x - 2 * ( margins.x + maxRadius );
int H = viewport.y - 2 * ( margins.y + maxRadius );
int U = H / (( maxRadius + minSpacing ) * 4);
int V = W / (( maxRadius + minSpacing ) * 2);
if(U > idealRows) U = idealRows;
if(V > idealCols) V = idealCols;
float dx = W / (V - 1);
float dy = H / (U * 1.5f);
for(int u = 0; u < U; u++)
{
for(int v = 0; v < V; v++)
{
float x = v * dx + margins.x + maxRadius;
float y = (u*2 + v%2) * dy + margins.y + maxRadius;
Cell::Size s;
switch(rand() % 3)
{
case 0: s = Cell::SMALL; break;
case 1: s = Cell::MED; break;
case 2: s = Cell::BIG; break;
}
Cell* c;
if(u == 0 && v == 0) // Le joueur commence dans le coin haut gauche
c = new Cell(sf::Vector2f(x, y), Cell::BIG, 1);
else if(u == U-1 && v == V-1) // Et l'ennemi dans le coin bas droite
c = new Cell(sf::Vector2f(x, y), Cell::BIG, -1);
else
c = new Cell(sf::Vector2f(x, y), s);
cells.push_back(c);
layerCell.addElement(c);
}
}
reticule.setOrigin(64, 64);
layerCell.addElement(&reticule);
}