Page 1 of 1

Platformera engine ar SFML

Posted: 12 Mar 2012, 20:10
by kristapuciitis
Sveiki!
Šis ir mans pirmais SFML projekts, kā arī mans pirmais platformera endžains. Tur vēl nav ne skaistas grafikas, ne gameplay, tur ir tikai fizika un file manager. Šis ir arī mans apjomīgākais projekts.

Re: Platformera engine ar SFML

Posted: 12 Mar 2012, 20:53
by bubu
C++'ā nelieto defainus konstantēm. Lieto netipizētas enuma vērtības:

Code: Select all

class Level
{
public:
    enum {
        kWidthMax = 90, // vai UPPER_CASE stilā, ja tā labāk patīk
        kHeightMax = 90,
        kCellWidth = 40,
        kCellHeight= 40,
    };

...
};
Level::LoadFromFile funkcijā ārējo ciklu es rakstītu šādi:

Code: Select all

unsigned y = 0;
while (std::getline(file, buffer))
{
     ...
     y++;
}
Tas pārbaudītu gan uz eof, gan uz kļūdām nolasot failu.

Menu::Update fjā tā vietā lai manuāli sekotu līdzi peles nospiedieniem iesaku padot attiecīgo peles nospiediena eventu no main.cpp faila eventu apstrādes cikla. Un switch (iColor) vietā es lietotu vienkārši masīvu:

Code: Select all

static const sf::Color colors[] = { sf::Color(255, 4, 100), sf::Color(10, 250, 100), ... visi pārējie... };
playerColor = colors[iColor];
sf::Vector2<float> vietā var rakstīt sf::Vector2f

Gan Menu, gan Level es padotu sf::RenderWindow nevis konstruktorā, bet gan Draw funkcijai. Jo visai klasei nevajg zināt par renderēšanas logu, tikai zīmēšanas fjai vajag to zināt.

Re: Platformera engine ar SFML

Posted: 13 Mar 2012, 10:53
by kristapuciitis
Ņemšu vērā! :-)

Re: Platformera engine ar SFML

Posted: 16 Mar 2012, 17:13
by kristapuciitis
Update!
Tika pievienoti daži enemy. =(

UPDATE!
Pievienots HUD, dzīvības.