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


C++ MovingObject::CanCollide方法代码示例

本文整理汇总了C++中MovingObject::CanCollide方法的典型用法代码示例。如果您正苦于以下问题:C++ MovingObject::CanCollide方法的具体用法?C++ MovingObject::CanCollide怎么用?C++ MovingObject::CanCollide使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MovingObject的用法示例。


在下文中一共展示了MovingObject::CanCollide方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: HandleCollisions

//	Handles collisions between the object and all the DisplayableObjects in m_listForegroundItems and with the map edges: detection and reaction.
void GameEngine::HandleCollisions(MovingObject& _obj)
{
	if (m_listForegroundItems.size() <= 1)
		return;

	CollisionDirection tmpDirection = NO_COL;

	if (_obj.CanCollide())
	{
		// What happens if there is a collision so _obj is moved and there is another one and _obj is moved again ? The first collision would need to be handled again
		for (std::map<unsigned int, DisplayableObject*>::iterator it = m_listForegroundItems.begin(); it != m_listForegroundItems.end(); ++it)
		{
			tmpDirection = m_collisionHandler->DetectCollisionWithObj(_obj, *(it->second));

			if (tmpDirection != NO_COL)
			{
				m_collisionHandler->ReactToCollisionsWithObj(_obj, *(m_listForegroundItems[it->first]), tmpDirection);
			}
		}
	}

	m_collisionHandler->HandleCollisionsWithMapEdges(_obj);
}
开发者ID:tcsilver,项目名称:SuperMarioWorld,代码行数:24,代码来源:GameEngine.cpp


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