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


C++ Shot::getCentre方法代码示例

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


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

示例1: WPN_Boom

	static void WPN_Boom(Shot& shot, std::vector<Player>& players, Player* playerThatWasHit, SpriteList& spriteList, FireList& fireList)
	{
        std::vector<Player*> killedPlayers;
        std::vector<Player*> hittedPlayers;

		Player& author = shot.getPlayer();

		Float32 range = shot.getExplosionRange();
		Float32 power = shot.getExplosionPower();

		const Vector shotCentre = shot.getCentre();
		bool shit = shot.getWeapon().shit;

		if (!shit)
		{
			fireList.check(shotCentre, range, spriteList);
		}

		for (Player& player : players)
		{
			bool directHit = (playerThatWasHit != nullptr && player.is(*playerThatWasHit));
			Vector playerCentre = player.getCentre();
			Float32 dist = directHit ? 0 : (playerCentre - shotCentre).length();

			if (directHit || dist < range)
			{
                hittedPlayers.push_back(&player);
				if (shit)
				{
					player.useTemporarySkin(*brownSkin);
				}
				else
				{
					if (player.hitByShot(directHit ? power : ((range - dist) * power) / range, shot, directHit))
					{
						killedPlayers.push_back(&player);
					}
				}
			}
		}

        author.processHits(shot, hittedPlayers);
        author.processKills(shot, killedPlayers);
	}
开发者ID:marcellus-trixus,项目名称:duel6r,代码行数:44,代码来源:Weapon.cpp


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