本文整理汇总了C++中Boss::hit方法的典型用法代码示例。如果您正苦于以下问题:C++ Boss::hit方法的具体用法?C++ Boss::hit怎么用?C++ Boss::hit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Boss
的用法示例。
在下文中一共展示了Boss::hit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: collisionDetection
void collisionDetection() {
//Check if any bullets hit
for (std::vector<Projectile>::iterator projectile = projectiles.begin(); projectile != projectiles.end();) {
bool broken = false;
for (std::vector<Enemy>::iterator enemy = enemies.begin(); enemy != enemies.end();) {
if (isHit((*projectile).getBoundingBox(), (*enemy).getBoundingBox())) {
enemy = enemies.erase(enemy);
projectile = projectiles.erase(projectile);
broken = true;
break;
}
else {
++enemy;
}
}
if (!broken && isHit((*projectile).getBoundingBox(), boss.getBoundingBox())) {
boss.hit();
projectile = projectiles.erase(projectile);
broken = true;
}
if (!broken) {
projectile++;
}
}
//Check if anything went outside the viewport
for (std::vector<Enemy>::iterator enemy = enemies.begin(); enemy != enemies.end();) {
if ((*enemy).getBoundingBox()[1][0] < topLeft[0]) {
enemy = enemies.erase(enemy);
}
else {
++enemy;
}
}
Entity viewport = Entity();
viewport.height = H_fen;
viewport.width = W_fen;
for (std::vector<Projectile>::iterator projectile = projectiles.begin(); projectile != projectiles.end();) {
if (!isHit((*projectile).getBoundingBox(), viewport.getBoundingBox())) {
projectile = projectiles.erase(projectile);
}
else {
++projectile;
}
}
//Check if the player didn't hit an enemy
for (std::vector<Enemy>::iterator enemy = enemies.begin(); enemy != enemies.end();) {
if (isHit(character.getBoundingBox(), (*enemy).getBoundingBox())) {
enemy = enemies.erase(enemy);
// Do some logic here
}
else {
++enemy;
}
}
}