本文整理汇总了C++中GameScene::getMapInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ GameScene::getMapInfo方法的具体用法?C++ GameScene::getMapInfo怎么用?C++ GameScene::getMapInfo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameScene
的用法示例。
在下文中一共展示了GameScene::getMapInfo方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IMDraw
void AIStatus::IMDraw()
{
if(this->enabled == true)
{
GameScene* sc = (GameScene*) this->_pGs;
//im cost numbers
for(std::map<int, InfluenceMapNode>::iterator node = sc->getInfluenceMap()->getMap()->begin(); node != sc->getInfluenceMap()->getMap()->end(); ++node)
{
if(((InfluenceMapNode)node->second).cost > -1)
{
std::stringstream ss1;
ss1 << ((InfluenceMapNode)node->second).cost; //+ ((InfluenceMapNode)node->second).pTower->GetStrength() ;
Label * lbl = Label::create(ss1.str(), "Arial", 12, CCSizeMake(sc->getTiledMap()->getTileSize().width, sc->getTiledMap()->getTileSize().height), kCCTextAlignmentCenter);
lbl->setPosition(sc->getMapInfo()->ConvertIdToPoint(node->first));
Rect r = lbl->getBoundingBox();
Sprite * spr = Sprite::create("sprite_Blue_10x10.png", r);
spr->setPosition(sc->getMapInfo()->ConvertIdToPoint(node->first));
spr->setOpacityModifyRGB(true);
spr->setOpacity( 80 + (((InfluenceMapNode)node->second).cost / 10) );
sc->getMapLayer()->addChild(spr);
sc->getMapLayer()->addChild(lbl);
//add it to the local pointers holder
std::pair< Label*, Sprite* > p;
p.first = lbl;
p.second = spr;
this->imNodes.insert(p);
}
}
}
}
示例2:
Radar::Radar(cocos2d::Layer & pGS, Point position)
{
this->_pGs = &pGS;
this->radarBg1 = Sprite::create("radarBG1.png");
this->radarBg1->setPosition(position);
GameScene* gs = (GameScene*) _pGs;
gs->addChild(radarBg1);
//populate the vector with the size of the mapinfo
for ( int i = 0; i < (gs->getMapInfo()->GetTilesPerLine() * gs->getMapInfo()->GetTilesPerColumn()); i++ )
{
this->map.push_back(RadarMapNode::Nothing);
}
}
示例3: DrawRoads
void AIStatus::DrawRoads()
{
GameScene* sc = (GameScene*) this->_pGs;
if(this->enabled == true)
{
//draw all roads
ValueVector idd = sc->getMapInfo()->GetMapInfoTypeVec(MapInfoType::Road);
for (auto& index: idd) {
Label * lbl = Label::create("R", "Arial", 12, CCSizeMake(sc->getTiledMap()->getTileSize().width, sc->getTiledMap()->getTileSize().height), kCCTextAlignmentCenter);
lbl->setPosition(sc->getMapInfo()->ConvertIdToPoint(index.asInt()));
sc->getMapLayer()->addChild(lbl);
std::pair < Label*, Sprite* > p;
p.first = lbl;
this->envNodes.insert(p);
}
}
}
示例4: if
void GeneticAlgorithmProfile1::SimulationForward(ThreadData* td, AdditionalTowers& at)
{
GameScene* gs = ((GameScene*)td->_sc);
std::cout << "\[email protected]@@@@@@@@@@@@@@@@@@@@@@";
std::cout << "\nADDITIONAL TOWERS DBG";
td->bkCurrency = gs->playerHandler->GetCurrency();
std::cout << "\nplayerMoney : " << gs->playerHandler->GetCurrency();
//AI -> forward
for ( int i = 0; i < 20; i++ )
{
//FIRST CASE : enough money for placing tower and upgrading it to an element
if(gs->playerHandler->GetCurrency() >= (50 + 500))
{
Tower* n1 = new Tower(*gs, Settings::towerTexture, ((GameScene*)td->_sc)->playerHandler->tw);
n1->setPosition(gs->getMapInfo()->GetRandomPointMidByType(MapInfoType::SimTowerPlace));
n1->SetHitPositions(gs->getMapInfo());
n1->SetStartingStats(Settings::towerAttackRange, Settings::towerAttackPoints, Settings::towerInbetweenAttacksPeriod, Settings::towerCost);
at.additionalTowers.push_back(n1);
gs->playerHandler->RemoveCoins(Settings::towerCost);
if(gs->playerHandler->GetCurrency() >= 500) //element can be upgraded
{
int numOfFire, numOfWater, numOfEarth, numOfShock = 0;
for(int a = 0; a < at.additionalTowers.size(); a++ )
{
if(at.additionalTowers[a]->GetElement() == ElementalAffinity::Fire)
{
numOfFire++;
}
else if(at.additionalTowers[a]->GetElement() == ElementalAffinity::Water)
{
numOfWater++;
}
else if(at.additionalTowers[a]->GetElement() == ElementalAffinity::Earth)
{
numOfEarth++;
}
else if(at.additionalTowers[a]->GetElement() == ElementalAffinity::Shock)
{
numOfShock++;
}
}
for ( std::list<Tower*>::iterator tower = gs->towerslist.begin(); tower != gs->towerslist.end(); ++tower )
{
Tower* t = *tower;
if(t->GetElement() == ElementalAffinity::Fire)
{
numOfFire++;
}
else if(t->GetElement() == ElementalAffinity::Water)
{
numOfWater++;
}
else if(t->GetElement() == ElementalAffinity::Earth)
{
numOfEarth++;
}
else if(t->GetElement() == ElementalAffinity::Shock)
{
numOfShock++;
}
}
if(numOfEarth < numOfFire && numOfEarth < numOfWater && numOfEarth < numOfShock)
{
if(n1->UpgradeToEarth(gs->playerHandler))
{
gs->playerHandler->RemoveCoins(n1->toweRules->GetEarthUpgradeCost());
//now upgrade atk spd
while ( gs->playerHandler->GetCurrency() >= n1->toweRules->GetAttackUpgradeCost(*n1) ||
gs->playerHandler->GetCurrency() >= n1->toweRules->GetSpeedUpgradeCost(*n1) )
{
if(n1->UpgradeAttackPower(gs->playerHandler))
{
gs->playerHandler->RemoveCoins(n1->toweRules->GetAttackUpgradeCost(*n1));
}
if(n1->UpgradeAttackSpeed(gs->playerHandler))
{
gs->playerHandler->RemoveCoins(n1->toweRules->GetSpeedUpgradeCost(*n1));
}
}
}
}
else if(numOfFire < numOfEarth && numOfFire < numOfWater && numOfFire < numOfShock)
{
if(n1->UpgradeToFire(gs->playerHandler))
{
//.........这里部分代码省略.........