piątek, 15 października 2010

Duchy na ekranie:)

Prace nad silnikiem powoli idą do przodu:)
Dzisiaj pragnę przedstawić, a właściwie zapoznać z duchami. Chyba każdy wie kim, a raczej czym jest duch - folklorze ludowym i według spirytystów istota inteligentna, żyjąca po śmierci fizycznej człowieka, bytująca w świecie pozamaterialnym, tak tym jest właśnie duch. Ale w grafice jest to po prostu dwuwymiarowy obrazek, który wyświetla się na ekranie i fachową nazwą dla niego jest Sprite. W moim silniku, tworzy go klasa o oryginalnej nazwie "CSprite" . Oto jej kod:



//! Klasa zawiera zbiór animacji.
class DLLDARKSTORM2D CSprite : public IResource
{
protected:
AnimationManagerPtr m_Animations;
std::string m_CurrentAnimationName;
AnimationPtr m_CurrentAnimation;
public:
CSprite();
~CSprite();

bool Create(const  std::string & CurrentAnimationName,AnimationManagerPtr & Animations);
void Update();

CError& LoadFromFile(const std::string & Filename);
const CError& Reload()
{
// mała atrapa
m_Animations->ReloadAll();
return CError();
}

bool SetAnimation(const std::string & AnimationName)
{
m_CurrentAnimationName = AnimationName;
m_CurrentAnimation = m_Animations->GetResource(AnimationName);
return true;
}
const std::string & GetCurrentAnimationName() const
{
return m_CurrentAnimationName;
}

void Render(float x, float y)
{
m_CurrentAnimation->Render(x,y);
}
};




JAK widać nic nadzwyczajnego, po prostu zbiór animacji. Jedną rzeczą na jaką trzeba zwrócić uwagę jest fakt że nie ma on określonej pozycji i wymiarów(to tylko część wizualna), jest to spowodowane filozofią projektową silnika - pozycja i wymiary będą w wyższej klasie grupującej tą i obiektu fizycznego, zdradzę może jej nazwę: CActor.


Może taka mała uwaga odnośnie nazewnictwa klas mojego projektu, a dokładniej przedrostków w nazwach: 
1. C - od klasy "normalnej"
2. I  - od interface, czyli klasa interfejsu(wirtualna)
3. S - od Singleton
4. może jeszcze FO od factory objects fabryka obiektów(o tym wspomnę w najbliższym poście).

Brak komentarzy:

Prześlij komentarz