ArnieBoids
1.0.0
JOINT AI PROJECT
|
#include <Predator.hpp>
Public Member Functions | |
Predator (thor::ParticleSystem &particleSystem, std::function< void(Bullet *)> const &fireCallback, sf::Vector2f position) | |
~Predator () | |
void | update () override |
Makes the ship flock toward other predators and prey_. Fires bullet at prey_ if facing toward it. More... | |
void | onCollide (Ship *other) override |
Takes damage if colliding with player. More... | |
Public Member Functions inherited from Ship | |
Ship (thor::ParticleSystem &particleSystem, sf::Vector2f const &position, float maxSpeed, unsigned int health=1u) | |
~Ship () | |
void | takeDamage (unsigned int amount=1u) |
Reduces health by the specified amount. More... | |
bool | isDead () const |
Returns true if health is zero. More... | |
void | thrust () |
Apply acceleration in direction of forward vector. More... | |
void | brake () |
Apply deceleration if thrust is present. More... | |
void | turnLeft () |
Turn ship left. More... | |
void | turnRight () |
Turn ship right. More... | |
bool | trigger () |
Attempt to fire, returns success. More... | |
void | turnToward (sf::Vector2f const &direction) |
sf::Vector2f | getForward () const |
Returns forward direction of ship. More... | |
sf::Vector2f | getVelocity () const |
Returns velocity. More... | |
void | setRadarRange (float range) |
Radar radius accessors. More... | |
float | getRadarRange () const |
int | getHealth () const |
Health accessors. More... | |
void | addHealth (unsigned int health) |
unsigned int | getMaxHealth () const |
Static Public Member Functions | |
static void | setPrey (Ship *prey) |
Private Member Functions | |
sf::Vector2f | separation () const |
Keeps ships from piling on top of each other. More... | |
sf::Vector2f | cohesion () const |
Keeps the ship moving in the same direction as nearby flockmates. Finds the averagelocation of nearby flockmates and manipulates the steering force to move in that direction. More... | |
sf::Vector2f | alignment () const |
sf::Vector2f | flock () const |
Private Attributes | |
std::function< void(Bullet *)> | fireCallback_ |
Static Private Attributes | |
static Ship * | prey_ = nullptr |
static std::list< Predator * > | flock_ = std::list<Predator*>() |
Additional Inherited Members | |
Public Attributes inherited from Ship | |
sf::RectangleShape | debug_rect_ |
Protected Member Functions inherited from Ship | |
void | clampToMaxSpeed () |
Clamps the length of the velocity_ vector to MAX_SPEED_. More... | |
float | tickToSec (unsigned int ticks) const |
Ticks to seconds. More... | |
virtual void | updateParticleEmitter () |
Protected Attributes inherited from Ship | |
const float | MAX_SPEED_ |
Maximum length of velocity vector. More... | |
const unsigned int | MAX_HEALTH_ |
float | refireTime_ |
float | coolDown_ |
unsigned int | ticks_ |
sf::Vector2f | velocity_ |
Delta position per update. More... | |
sf::Vector2f | accel_ |
Delta velocity after update !velocity_ += accel_ in update! More... | |
int | health_ |
Current health. More... | |
sf::Vector2f | forward_ |
Unit vector for ship's heading. More... | |
float | thrust_ |
How fast the ship accelerates. More... | |
float | turnSpeed_ |
How fast (in degrees) the ship can turn. More... | |
float | radarRange_ |
Ship's radar radius. More... | |
thor::UniversalEmitter | particleEmitter_ |
Does nothing on it's own. Derived classes should play with this. More... | |
float | particleAngleVariance_ |
Predator::Predator | ( | thor::ParticleSystem & | particleSystem, |
std::function< void(Bullet *)> const & | fireCallback, | ||
sf::Vector2f | position | ||
) |
Predator::~Predator | ( | ) |
|
private |
|
private |
Keeps the ship moving in the same direction as nearby flockmates. Finds the averagelocation of nearby flockmates and manipulates the steering force to move in that direction.
|
private |
|
overridevirtual |
|
private |
Keeps ships from piling on top of each other.
|
static |
|
overridevirtual |
Makes the ship flock toward other predators and prey_. Fires bullet at prey_ if facing toward it.
Reimplemented from Ship.
|
private |
|
staticprivate |