#include <bomb.h>
Veřejné metody | |
Bomb (const Animation &anim, Uint16 x, Uint16 y, Uint16 flamesize, Uint16 speed, bool timer) | |
Vytvoří bombu. | |
virtual bool | move () |
Pohyb. | |
virtual void | draw (SDL_Surface *window, const SDL_Rect &rect) |
Vykreslení. | |
virtual void | update () |
Posun animace. | |
virtual OBJECT_TYPES | type () const |
Typ objektu je bomba. | |
virtual | ~Bomb () |
Destructor. | |
virtual bool | is_mega () const |
Ne, není megabomba. | |
virtual void | explode () |
Přinutí bombu k explozi. | |
void | kick (DIRECTION d) |
Kopne do bomby. | |
void | remove_timer () |
Odstranění ručního odpalování. | |
Chráněné metody | |
void | update_periods_to_flame_ () |
Obnovit počet period do výbuchu. | |
bool | move_by_direction_ () |
Pohnout bombou ve směru pohybu. | |
virtual void | update_presumptions_ () |
Vytvořit presumpce. | |
void | update_presumptions_from_field_ (const field_t &start_field, Sint16 factor_x, Sint16 factor_y) |
Vytvoří presumpce v jednom směru. | |
field_t | find_target_field_ () const |
Najít cílové políčko bomby. | |
Uint16 | count_distance_ (Uint16 periods_to_end) const |
Spočítat vzdálenost dojezdu. | |
void | move_field_by_direction_ (field_t &field, Sint16 delta) const |
Posunout políčko. | |
bool | is_danger_presumption_ (const field_t &field, Uint16 periods_to_end) const |
Je zde nebezpečná presumpce?. | |
field_t | take_target_from_bomb_before_ (Bomb *bomb_before) const |
Převezme cíl od předcházející bomby. | |
bool | update_presumption_ (const field_t &field) |
Přidat či obnovit presumpci. | |
void | remove_presumptions_ () |
Odstranit presumpce. | |
Chráněné atributy | |
Animation | anim_ |
Animace. | |
bool | explodes_ |
Exploduje-li bomba. | |
bool | timer_ |
Odpaluje se ručně. | |
Uint16 | periods_to_flame_ |
Počet period do výbuchu. | |
Uint16 | access_counter_ |
Počítadlo přístupů. | |
Uint16 | flamesize_ |
Velikost plamene. | |
Uint16 | speed_diff_ |
Velikost parciálního pohybu. | |
Uint16 | speed_rate_ |
Míra parciálního pohybu. | |
DIRECTION | d_ |
Směr pohybu. | |
std::vector< Presumption * > | presumptions_ |
Seznam presumpcí. | |
field_t | target_field_ |
Cílové políčko. |
Dynamický objekt vytvářený především hráčem. Vytváří plamen, může se hýbat.
Bomb::Bomb | ( | const Animation & | anim, | |
Uint16 | x, | |||
Uint16 | y, | |||
Uint16 | flamesize, | |||
Uint16 | speed, | |||
bool | timer | |||
) |
Vytvoří bombu.
anim | animace | |
x | souřadnice středu v pixelech | |
y | souřadnice středu v pixelech | |
flamesize | velikost plamene v políčkách | |
speed | rychlost jedoucí bomby | |
timer | odpaluje-li se rucne |
Bomb::~Bomb | ( | ) | [virtual] |
bool Bomb::move | ( | ) | [virtual] |
Pohyb.
Sníží počet period do výbuchu. Hýbe s bombou, stará se o presumpce (vyhazuje nepotřebné, vytváří nové).
Implementuje DynamicMO.
void Bomb::draw | ( | SDL_Surface * | window, | |
const SDL_Rect & | rect | |||
) | [virtual] |
Vykreslení.
window | surface okna pro vykreslení | |
rect | obdelnik mapy v okne |
Implementuje MapObject.
void Bomb::update | ( | ) | [virtual] |
virtual OBJECT_TYPES Bomb::type | ( | ) | const [inline, virtual] |
virtual bool Bomb::is_mega | ( | ) | const [inline, virtual] |
void Bomb::explode | ( | ) | [virtual] |
Přinutí bombu k explozi.
Výbuch bomby. Vytvoří plameny s ohledem na okolí. Ohlídá si, aby běžela pouze jednou, protože nemá smysl vytvářet plameny dvakrát.
Reimplementováno v MegaBomb.
void Bomb::kick | ( | DIRECTION | d | ) |
Kopne do bomby.
Nastaví nový směr. Vycentruje bombu na políčku podle nového směru. Pokud je na dalším políčku ve směru pohybu bomba, posune sebe na vzdálenější okraj políčka.
d | nový směr bomby |
void Bomb::remove_timer | ( | ) |
Odstranění ručního odpalování.
Odstraní bombě ruční odpalování, spustí klasické odpočítávání.
void Bomb::update_periods_to_flame_ | ( | ) | [protected] |
Obnovit počet period do výbuchu.
Podle presumpce, která leží pod bombou (pokud tam leží) si nastaví svůj počet period do konce.
bool Bomb::move_by_direction_ | ( | ) | [protected] |
Pohnout bombou ve směru pohybu.
void Bomb::update_presumptions_ | ( | ) | [protected, virtual] |
Vytvořit presumpce.
Z cílověho políčka vytvoří ve směrech výbuchu presumpce.
Reimplementováno v MegaBomb.
void Bomb::update_presumptions_from_field_ | ( | const field_t & | start_field, | |
Sint16 | factor_x, | |||
Sint16 | factor_y | |||
) | [protected] |
Vytvoří presumpce v jednom směru.
field_t Bomb::find_target_field_ | ( | ) | const [protected] |
Najít cílové políčko bomby.
Uint16 Bomb::count_distance_ | ( | Uint16 | periods_to_end | ) | const [protected] |
Spočítat vzdálenost dojezdu.
periods_to_end | počet period do výbuchu bomby |
void Bomb::move_field_by_direction_ | ( | field_t & | field, | |
Sint16 | delta | |||
) | const [protected] |
Posunout políčko.
Pro delta rovno +1 hýbne políčkem o jedna ve směru bomby.
field | políčko, které chceme posunout | |
delta | o kolik se má políčko posunout (pro kladné ve směru pohybu) |
bool Bomb::is_danger_presumption_ | ( | const field_t & | field, | |
Uint16 | periods_to_end | |||
) | const [protected] |
Je zde nebezpečná presumpce?.
Pokusí se najít presumpci, porovnává počet period do výbuchu presumpce a mě, pokud by mohla presumpce bouchnout dříve než já, testuje, jestli nebudu už za tímto výbuchem.
field | policko, ktere testujeme | |
periods_to_end | počet period do mého bouchnutí |
Převezme cíl od předcházející bomby.
Převezme od předchozí bomby cíl a posune ho o jedna proti směru pohybu.
bomb_b | předcházející bomba |
bool Bomb::update_presumption_ | ( | const field_t & | field | ) | [protected] |
Přidat či obnovit presumpci.
Vytvoří presumpci, pokud ještě na políčku není, vloží ji do mapy a do seznamu presumpcí bomby. Pokud na políčku už je, nastaví jí aspon svojí dobu do výbuchu, pokud je doba do výbuchu presumpce vetší.
field | políčko na které chceme vkládat |
void Bomb::remove_presumptions_ | ( | ) | [protected] |
Odstranit presumpce.
Vyhodí všechny presumpce bomby.
Animation Bomb::anim_ [protected] |
Animace.
bool Bomb::explodes_ [protected] |
Exploduje-li bomba.
bool Bomb::timer_ [protected] |
Odpaluje se ručně.
Uint16 Bomb::periods_to_flame_ [protected] |
Počet period do výbuchu.
Uint16 Bomb::access_counter_ [protected] |
Počítadlo přístupů.
Uint16 Bomb::flamesize_ [protected] |
Velikost plamene.
Uint16 Bomb::speed_diff_ [protected] |
Velikost parciálního pohybu.
Uint16 Bomb::speed_rate_ [protected] |
Míra parciálního pohybu.
std::vector< Presumption* > Bomb::presumptions_ [protected] |
Seznam presumpcí.
field_t Bomb::target_field_ [protected] |
Cílové políčko.