本文整理汇总了C++中Tower::GetPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Tower::GetPosition方法的具体用法?C++ Tower::GetPosition怎么用?C++ Tower::GetPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tower
的用法示例。
在下文中一共展示了Tower::GetPosition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: nextFrame
void MultiBullet::nextFrame(){
Tower *temp = getTower();
if(temp != NULL){
SetPosition(temp->GetPosition().x, temp->GetPosition().y);
m_circ = sf::Shape::Circle(temp->GetPosition().x, temp->GetPosition().y, m_attack_radius, sf::Color::Red, 2, sf::Color::Blue);
}
}
示例2: BuildTower
Float BuildTower(Script * script)
{
if (script->VerifyArguments(2) == true)
{
Word * targetWord = script->GetNextWord();
Word * posWord = script->GetNextWord();
Point2D position(0, 0);
Point2D * pos = (Point2D *)(uint32)posWord->value;
if (pos != NULL)
{
position.SetValues(pos->GetX(), pos->GetY());
}
else
{
return false;
}
if ((IntervalCheck(position.GetX(), 1, GRID_SIZE - 2) == true) && (IntervalCheck(position.GetY(), 1, GRID_SIZE - 2) == true))
{
if (targetWord->type == POINTER)
{
Object * target = script->GetTarget(targetWord);
if ((target != NULL) && (target->CheckType(OBJ_TYPE_TOWER) == true))
{
Grid * grid = WorldGame.GetGrid();
Tower * tower = (Tower *)target;
//To bypass grid auto-filling
tower->SetState(false);
Point2D towerCoords = tower->GetPosition();
towerCoords.SetValues((towerCoords.GetX() - 80)/32, (towerCoords.GetY() - 80)/32);
grid->SetPath(towerCoords, 0);
if (BuildTower(tower->GetTowerType(), position, true) == true)
{
Tower * newTower = grid->GetData(Point2D(position.GetX(), position.GetY()));
tower->SetState(true);
grid->FindPath(Origin);
newTower->Copy(*tower);
newTower->SetUInt32Value(TOWER_VAR_BUILD_TIME, GetGameTime());
return true;
}
else
{
tower->SetState(true);
grid->FindPath(Origin);
}
}
}
else if ((targetWord->type == NUMERIC) && (IntervalCheck(targetWord->value, 1, GetTowerDataSize()) == true))
{
return (BuildTower(targetWord->value, position, true));
}
}
}
return false;
}
示例3: SpellAreaTowers
Float SpellAreaTowers(Script * script)
{
if (script->VerifyArguments(1) == true)
{
Word * spellWord = script->GetNextWord();
GameObject * source = (GameObject *)script->GetSource();
if ((source != NULL) && (source->CheckType(OBJ_TYPE_GAME_OBJECT) == true))
{
const Spell * spell = GetSpell(spellWord->value);
if (spell != NULL)
{
Shape * shape = source->GetShape();
Shape * newShape = shape->CreateInstance();
newShape->Translate(source->GetPosition());
Grid * grid = WorldGame.GetGrid();
Tower ** TowerData = grid->GetData();
for (uint32 i = 1; i < GRID_SIZE - 1; i++)
{
for (uint32 j = 1; j < GRID_SIZE - 1; j++)
{
Tower * tower = TowerData[(i*GRID_SIZE)+j];
if ((tower != NULL) && (tower->GetState() == true) && (tower->ActiveSpell(spell, source) == false))
{
Point2D towerPos = tower->GetPosition();
Rect towerRect(towerPos.GetX(), towerPos.GetY(), towerPos.GetX() + 32, towerPos.GetY() + 32);
if (Intersect(newShape, &towerRect) == true)
{
if (tower->ActiveSpell(spell, source) == false)
{
tower->ApplySpell(spell, source);
}
}
else
{
tower->RemoveSpell(spell, source);
}
}
}
}
delete newShape;
return true;
}
}
}
return false;
}