本文整理汇总了C++中Shot::getExplosionPower方法的典型用法代码示例。如果您正苦于以下问题:C++ Shot::getExplosionPower方法的具体用法?C++ Shot::getExplosionPower怎么用?C++ Shot::getExplosionPower使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Shot
的用法示例。
在下文中一共展示了Shot::getExplosionPower方法的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);
}