本文整理汇总了C++中BaseSprite::getTag方法的典型用法代码示例。如果您正苦于以下问题:C++ BaseSprite::getTag方法的具体用法?C++ BaseSprite::getTag怎么用?C++ BaseSprite::getTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseSprite
的用法示例。
在下文中一共展示了BaseSprite::getTag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void PlayerSprite::update( float delta )
{
b2ContactEdge* ce = m_pB2Body->GetContactList();
list<BaseSprite*> desList;
while (ce)
{
b2Body* body = ce->contact->GetFixtureA()->GetBody();
BaseSprite* sprite = (BaseSprite*)body->GetUserData();
if (sprite->getTag() == kEnemySprite)
{
desList.push_back(sprite);
}
ce = ce->next;
}
for (list<BaseSprite*>::iterator it = desList.begin(); it != desList.end(); it++)
{
CCPoint dir = (*it)->getPosition() - getPosition();
dir = dir.normalize();
float sita = CC_RADIANS_TO_DEGREES(acos(dir.dot(CCPoint(0, 1))));
ElementColor hitColor;
//cos值域在(0,180),修正在(180,360)的情况
if (dir.x < 0)
{
sita = 360 - sita;
}
sita += getRotation();
while (sita < 0)
{
sita += 360;
}
sita = (int)sita % 360;
if (sita >=0 && sita < 120)
{
hitColor = kGreen;
}
else if (sita >= 120 && sita < 240)
{
hitColor = kRed;
}
else
{
hitColor = kBlue;
}
EnemySprite* esp = dynamic_cast<EnemySprite*>(*it);
if (!esp) continue;
if (hitColor == esp->getElementColor())
{
HudLayer::getCurrent()->score(g_ScoreStep);
}
GameLayer::getCurrent()->getGameBg()->changeBgColor(esp->getElementColor());
(*it)->destroySprite();
}
desList.clear();
keyBoardHandle();
}