本文整理汇总了C++中Shot::getPlayer方法的典型用法代码示例。如果您正苦于以下问题:C++ Shot::getPlayer方法的具体用法?C++ Shot::getPlayer怎么用?C++ Shot::getPlayer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Shot
的用法示例。
在下文中一共展示了Shot::getPlayer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
示例2: WPN_ShotPlayerCollision
static Hit WPN_ShotPlayerCollision(Shot& shot, std::vector<Player>& players)
{
const Rectangle shotBox = shot.getCollisionRect();
for (Player& player : players)
{
if (!player.isInGame() || player.getBonus() == D6_BONUS_INVIS || player.is(shot.getPlayer()))
{
continue;
}
if (Collision::rectangles(player.getCollisionRect(), shotBox))
{
return {true, &player};
}
}
return { false, nullptr };
}