Dokumentace třídy GameBase

Základ hry. ...

#include <base.h>

Diagram dědičnosti pro třídu GameBase

Inheritance graph
[vysvětlivky]
Diagram tříd pro GameBase:

Collaboration graph
[vysvětlivky]

Seznam všech členů.

Veřejné typy

typedef std::vector< bonus_tbonuses_t
 Typ seznamu jmen a počtů bonusů.
typedef std::vector
< std::vector< std::list
< proportionedMO_t > > > 
base_array_t
 Typ dvourozměrného pole mapy, na každém políčku seznam objektů s rozměry.
typedef std::vector
< std::vector< allowed_field_t > > 
allowed_array_t
 Typ dvourozměrného pole, na každém políčku TRUE, pokud je možné vygenerovat box.
typedef std::vector< MapObject * > generatedMOs_t
 Typ seznamu generovaných objektů.

Veřejné metody

 GameBase (Uint16 players_count, const std::string &mapname)
 Inicializace normální hry.
 GameBase (Uint16 players_count, const std::string &mapname, const bonuses_t &bonuses, bool creatures)
 Inicializace hry pro deathmatch.
 ~GameBase ()
 Uvolnění naalokovaaných objektů.
void set_player (Uint16 player_num, const PlayerProperties &prop)
 Nastavení parametrů hráče.
void get_player (Uint16 player_num, PlayerProperties &prop)
 Získání parametrů hráče.

Privátní metody

void load_map_ (Uint16 players_count, const std::string &mapname, bool deathmatch, bool creatures)
 Načtení mapy pro hru.
void load_background_ (const std::string &bgname)
 Načtení pozadí mapy.
void load_players_ (TiXmlElement *playersEl, Uint16 count)
 Načtení hráčů.
void load_players_deathmatch_ (TiXmlElement *playersEl, Uint16 count)
 Načtení hráčů do deathmatche.
void load_walls_ (TiXmlElement *wallsEl)
 Načtení zdí mapy.
void load_floorobjects_ (TiXmlElement *floorEl)
 Načtení objektů na zemi.
void load_boxes_ (TiXmlElement *boxesEl)
 Načtení beden mapy.
void load_noboxes_ (TiXmlElement *boxesEl)
 Připravení políček, na kterých nesmí být bedna.
void load_bonuses_ (TiXmlElement *bonusEl)
 Načtení bonusů.
void load_bonuses_ (const bonuses_t &bonuses)
 Načtení bonusů z externího zdroje.
void load_creatures_ (TiXmlElement *creaturesEl)
 Načtení příšer.
void load_nocreatures_ (TiXmlElement *nocreaturesEl)
 Připravení políček, na kterých nesmí být příšery.
void insert_background_ (const Animation &anim, const Animation &anim_burned, Uint16 x, Uint16 y)
 Vytvoření a vložení pozadí do mapy.
void insert_wall_ (const Animation &anim, Uint16 toplapping, Uint16 x, Uint16 y, Uint16 w, Uint16 h)
 Vytvoření a vložení zdi do mapy.
void insert_floorobject_ (const Animation &anim, Uint16 x, Uint16 y, Uint16 w, Uint16 h)
 Vytvoření a vložení objektu na zemi do mapy.
void insert_box_ (const Animation &anim, const Animation &sur_burning, Uint16 toplapping)
 Pouze vytvoření bedny.
void insert_box_ (const Animation &anim, const Animation &sur_burning, Uint16 toplapping, Uint16 x, Uint16 y, Uint16 w, Uint16 h)
 Vytvoření a vložení bedny do mapy.
void insert_bonus_ (const std::string &bonus_name, const Animation &anim)
 Pouze vytvoření bonusu.
void insert_creature_ (const Animation &anim_up, const Animation &anim_right, const Animation &anim_down, const Animation &anim_left, const Animation &anim_burned, Uint16 speed, Uint16 lives, Uint16 ai)
 Pouze vytvoření příšery.
void insert_creature_ (const Animation &anim_up, const Animation &anim_right, const Animation &anim_down, const Animation &anim_left, const Animation &anim_burned, Uint16 x, Uint16 y, Uint16 speed, Uint16 lives, Uint16 ai)
 Vytvoření a vložení příšery do mapy.
void insert_player_ (const Animation &anim_up, const Animation &anim_right, const Animation &anim_down, const Animation &anim_left, const Animation &anim_burned, Uint16 x, Uint16 y, Uint16 speed, Uint16 num)
 Vytvoření a vložení hráče do mapy.
void clear_null_objects_ ()
 Vyhození nulových pointerů z base_array_.

Privátní atributy

base_array_t base_array_
 Pole mapy.
allowed_array_t allowed_array_
 Pole mapy, na každém políčku TRUE, pokud je možné vygenerovat box.
Uint16 allowed_boxes_count_
 Počet volných políček v boxes_array_.
generatedMOs_t generatedMOs_
 Seznam neumístěných objektů.
std::vector< Player * > players_
 Seznam hráčů.

Friends

class Game

Třídy

struct  allowed_field_t
struct  bonus_t
struct  proportionedMO_t


Detailní popis

Základ hry.

Třída GameBase řeší první načtení mapy a jejích objektů z XML, připraví hrací pole a vloží do něj (a nikam jinam) pevně umístěné objekty. Náhodně generované objekty (statické, respektive dynamické) se uloží do seznamů statických, respektive dynamických objektů. Bomby, plameny a ikony se zde nepřipravují, nejsou základními objekty mapy. Z této předpřipravené struktury se vytvoří konkrétní hra, proto je friend s třídou Game.

Viz také:
GameIntro, DeathmatchIntro, GameTools.

Dokumentace k členským typům

typedef std::vector< bonus_t > GameBase::bonuses_t

Typ seznamu jmen a počtů bonusů.

typedef std::vector< std::vector< std::list< proportionedMO_t > > > GameBase::base_array_t

Typ dvourozměrného pole mapy, na každém políčku seznam objektů s rozměry.

typedef std::vector< std::vector< allowed_field_t> > GameBase::allowed_array_t

Typ dvourozměrného pole, na každém políčku TRUE, pokud je možné vygenerovat box.

typedef std::vector< MapObject* > GameBase::generatedMOs_t

Typ seznamu generovaných objektů.


Dokumentace konstruktoru a destruktoru

GameBase::GameBase ( Uint16  players_count,
const std::string &  mapname 
)

Inicializace normální hry.

Vytvori zaklad hry pro kooperativ mod.

Parametry:
players_count počet hráčů
mapname název mapy
Viz také:
load_map_()

Tato funkce volá...

GameBase::GameBase ( Uint16  players_count,
const std::string &  mapname,
const bonuses_t bonuses,
bool  creatures 
)

Inicializace hry pro deathmatch.

Vytvori zaklad hry pro deathmatch.

Parametry:
players_count počet hráčů
mapname název mapy
bonuses seznam bonusu k vygenerovani
creatures jestli se maji vkladat prisery
Viz také:
load_map_(), load_bonuses_()

Tato funkce volá...

GameBase::~GameBase (  ) 

Uvolnění naalokovaaných objektů.

Zruší všechny umístěné i generované objekty.


Dokumentace k metodám

void GameBase::set_player ( Uint16  player_num,
const PlayerProperties prop 
)

Nastavení parametrů hráče.

Parametry:
player_num číslo (pořadí) hráče
prop vlastnosti hráče

Tuto funkci volají...

void GameBase::get_player ( Uint16  player_num,
PlayerProperties prop 
)

Získání parametrů hráče.

Parametry:
player_num číslo (pořadí) hráče
prop vlastnosti hráče

Tuto funkci volají...

void GameBase::load_map_ ( Uint16  players_count,
const std::string &  mapname,
bool  deathmatch,
bool  creatures 
) [private]

Načtení mapy pro hru.

Načte mapu z XML souborů, umístí do ní pevně dané objekty, vytvoří struktury s generovanými objekty.

Parametry:
players_count počet hráčů
mapname název mapy
deathmatch vytváří-li mapu pro deathmatch
creatures má-li připravit do mapy také příšery
Viz také:
TiXmlError()

Tuto funkci volají...

void GameBase::load_background_ ( const std::string &  bgname  )  [private]

Načtení pozadí mapy.

Vytvoří z XML a vloží do mapy její pozadí.

Parametry:
bgname název pozadí mapy

Tuto funkci volají...

void GameBase::load_players_ ( TiXmlElement *  playersEl,
Uint16  count 
) [private]

Načtení hráčů.

Načte z XML a vloží do mapy hráče.

Parametry:
playersEl element v XML souboru specifikující výchozí pozici hráče
count počet hráčů

Tato funkce volá...

Tuto funkci volají...

void GameBase::load_players_deathmatch_ ( TiXmlElement *  playersEl,
Uint16  count 
) [private]

Načtení hráčů do deathmatche.

Načte z XML a vloží do mapy hráče pro deathmatch.

Parametry:
playersEl element v XML souboru specifikující výchozí pozici hráče
count počet hráčů

Tato funkce volá...

Tuto funkci volají...

void GameBase::load_walls_ ( TiXmlElement *  wallsEl  )  [private]

Načtení zdí mapy.

Načte z XML a vloží do mapy zdi.

Parametry:
wallsEl element v XML souboru specifikující zdi mapy

Tuto funkci volají...

void GameBase::load_floorobjects_ ( TiXmlElement *  floorsEl  )  [private]

Načtení objektů na zemi.

Načte z XML a vloží do mapy objekty na zemi.

Parametry:
floorsEl element v XML souboru specifikující objekt na zemi

Tuto funkci volají...

void GameBase::load_boxes_ ( TiXmlElement *  boxesEl  )  [private]

Načtení beden mapy.

Načte z XML a vloží do mapy pevně dané bedny, ostatní připraví pro vygenerování.

Parametry:
boxesEl element v XML souboru specifikující bedny v mapě

Tuto funkci volají...

void GameBase::load_noboxes_ ( TiXmlElement *  boxesEl  )  [private]

Připravení políček, na kterých nesmí být bedna.

Načte z XML informace o políčkách, na kterých nesmí být bedna. Na základě tohoto, a již umístěných objektů v mapě vytvoří strukturu políček vhodných k umístění beden, zároven uloží počet těchto políček.

Parametry:
boxesEl element v XML souboru specifikující bedny v mapě

Tato funkce volá...

Tuto funkci volají...

void GameBase::load_bonuses_ ( TiXmlElement *  bonusEl  )  [private]

Načtení bonusů.

Načte z XML a připraví pro pozdější vygenerování bonusy.

Parametry:
bonusEl element v XML souboru specifikující bonus

Tato funkce volá...

Tuto funkci volají...

void GameBase::load_bonuses_ ( const bonuses_t bonuses  )  [private]

Načtení bonusů z externího zdroje.

Tato funkce volá...

void GameBase::load_creatures_ ( TiXmlElement *  creaturesEl  )  [private]

Načtení příšer.

Načte z XML a vloží do mapy pevně umístěné nestvůry, ostatní připraví pro pozdější vygenerování.

Parametry:
creaturesEl element v XML souboru specifikující nestvůry

Tato funkce volá...

Tuto funkci volají...

void GameBase::load_nocreatures_ ( TiXmlElement *  nocreaturesEl  )  [private]

Připravení políček, na kterých nesmí být příšery.

Načte z XML informace o políčkách, na kterých nesmí být příšera. Na základě tohoto, a již umístěných objektů v mapě doplní do struktury políček vhodných k umístění.

Parametry:
nocreaturesEl element v XML souboru specifikující políčka v mapě, na kterých nechceme příšery.
Viz také:
GameBase::load_noboxes_()

Tato funkce volá...

Tuto funkci volají...

void GameBase::insert_background_ ( const Animation anim,
const Animation anim_burned,
Uint16  x,
Uint16  y 
) [private]

Vytvoření a vložení pozadí do mapy.

Vytvoří pozadí na zadaných souřadnicích a vloží ho do mapy.

Parametry:
anim animace pozadí
anim_burned animace ohořelého
x souřadnice políčka v mapě
y souřadnice políčka v mapě

Tuto funkci volají...

void GameBase::insert_wall_ ( const Animation anim,
Uint16  toplapping,
Uint16  x,
Uint16  y,
Uint16  w,
Uint16  h 
) [private]

Vytvoření a vložení zdi do mapy.

Vytvoří zed na zadaných souřadnicích a vloží ji do mapy. Zed vkládá do mapy na všechna políčka, které zabírá. Zakáže políčka pro vygenerování příšery i bedny.

Parametry:
anim animace vkládané zdi
toplapping počet políček odshora obrázku, které nezabírají místo v mapě
x souřadnice políčka pro levý roh zdi v mapě
y souřadnice políčka pro horní roh zdi v mapě
w šířka zdi v políčkách
h výška zdi v políčkách

Tuto funkci volají...

void GameBase::insert_floorobject_ ( const Animation anim,
Uint16  x,
Uint16  y,
Uint16  w,
Uint16  h 
) [private]

Vytvoření a vložení objektu na zemi do mapy.

Vytvoří objekt na zemi na zadaných souřadnicích a vloží ho do mapy. Objekt vkládá do mapy na všechna políčka, které zabírá.

Parametry:
anim animace vkládaného objektu
x souřadnice políčka pro levý roh objektu v mapě
y souřadnice políčka pro horní roh objektu v mapě
w šířka objektu v políčkách
h výška objektu v políčkách

Tuto funkci volají...

void GameBase::insert_box_ ( const Animation anim,
const Animation anim_burning,
Uint16  toplapping 
) [private]

Pouze vytvoření bedny.

Vytvoří bednu a vloží ji do seznamu pro pozdější náhodné vygenerování.

Parametry:
anim animace vkládané bedny
anim_burning animace hořící bedny
toplapping počet políček odshora obrázku, které nezabírají místo v mapě

Tuto funkci volají...

void GameBase::insert_box_ ( const Animation anim,
const Animation anim_burning,
Uint16  toplapping,
Uint16  x,
Uint16  y,
Uint16  w,
Uint16  h 
) [private]

Vytvoření a vložení bedny do mapy.

Vytvoří bednu na zadaných souřadnicích a vloží ji do mapy. Bednu vkládá do mapy na všechna políčka, která zabírá. Zakáže vygenerování další bedny a příšery.

Parametry:
anim animace vkládané bedny
anim_burning animace hořící bedny
toplapping počet políček odshora obrázku, které nezabírají místo v mapě
x souřadnice políčka pro levý roh bedny v mapě
y souřadnice políčka pro horní roh bedny v mapě
w šířka bedny v políčkách
h výška bedny v políčkách

void GameBase::insert_bonus_ ( const std::string &  bonus_name,
const Animation anim 
) [private]

Pouze vytvoření bonusu.

Vytvoří bonus a vloží ho do seznamu pro pozdější náhodné vygenerování.

Parametry:
bonus_name jméno bonusu v XML
anim animace vkládaného bonusu (do mapy)

Tuto funkci volají...

void GameBase::insert_creature_ ( const Animation anim_up,
const Animation anim_right,
const Animation anim_down,
const Animation anim_left,
const Animation anim_burned,
Uint16  speed,
Uint16  lives,
Uint16  ai 
) [private]

Pouze vytvoření příšery.

Vytvoří nestvůru na zadaných souřadnicích a vloží ji do seznamu pro pozdější vygenerování.

Parametry:
anim_left animace pro otočení doleva
anim_up animace pro otočení nahoru
anim_right animace pro otočení doprava
anim_down animace pro otočení dolů
anim_burned animace pro umírání
speed rychlost v pixelech za jednu časovou jednotku
lives počet životů
ai kvalita umělé inteligence

Tuto funkci volají...

void GameBase::insert_creature_ ( const Animation anim_up,
const Animation anim_right,
const Animation anim_down,
const Animation anim_left,
const Animation anim_burned,
Uint16  x,
Uint16  y,
Uint16  speed,
Uint16  lives,
Uint16  ai 
) [private]

Vytvoření a vložení příšery do mapy.

Vytvoří nestvůru na zadaných souřadnicích a vloží ji do mapy. Zakáže vygenerovat na tomto místě bendu.

Parametry:
anim_left animace pro otočení doleva
anim_up animace pro otočení nahoru
anim_right animace pro otočení doprava
anim_down animace pro otočení dolů
anim_burned animace pro umírání
x souřadnice nestvůry v mapě
y souřadnice nestvůry v mapě
speed rychlost v pixelech za jednu časovou jednotku
lives počet životů
ai kvalita umělé inteligence

void GameBase::insert_player_ ( const Animation anim_up,
const Animation anim_right,
const Animation anim_down,
const Animation anim_left,
const Animation anim_burned,
Uint16  x,
Uint16  y,
Uint16  speed,
Uint16  num 
) [private]

Vytvoření a vložení hráče do mapy.

Vytvoří hráče na zadaných souřadnicích a vloží jej do mapy. Zakáže na tomto místě a v nejbližším okolí vygenerovat příšeru a bednu.

Parametry:
anim_left animace pro otočení doleva
anim_up animace pro otočení nahoru
anim_right animace pro otočení doprava
anim_down animace pro otočení dolů
anim_burned animace pro umírání
x souřadnice hráče v mapě
y souřadnice hráče v mapě
speed rychlost v pixelech za jednu časovou jednotku
num číslo (pořadí) hráče

Tuto funkci volají...

void GameBase::clear_null_objects_ (  )  [private]

Vyhození nulových pointerů z base_array_.

Do pole mapy jsme u rozměrnějších objektů vkládali pravý objekt pouze na levé horní políčko. Na ostatní políčka, která zabírá, jsme vkládali nulové pointery, abychom zamezili umístění dalšího objektu na zabrané políčko. Nyní chceme tyto falešné nulové objekty vyhodit, jednak jsou nám už k ničemu a jednak by nám vadili při dalším použití base_array_.

Tuto funkci volají...


Dokumentace k friends

friend class Game [friend]


Dokumentace k datovým členům

Pole mapy.

Pole mapy, na každém políčku TRUE, pokud je možné vygenerovat box.

Počet volných políček v boxes_array_.

Seznam neumístěných objektů.

std::vector< Player* > GameBase::players_ [private]

Seznam hráčů.


Dokumentace pro tuto třídu byla generována z následujících souborů:

Generováno Mon May 24 21:57:57 2010 pro projekt Bombic 2 programem  doxygen 1.5.6