当前位置: 首页>>代码示例>>C++>>正文


C++ BaseSprite::getTag方法代码示例

本文整理汇总了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();
}
开发者ID:ungod,项目名称:PieceProj,代码行数:67,代码来源:PlayerSprite.cpp


注:本文中的BaseSprite::getTag方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。