Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML]Animacja sprita

Ostatnio zmodyfikowano 2012-09-04 18:18
Autor Wiadomość
waxx
» 2012-09-03 18:58:37
nie, player moze sobie miec sprita w sobie
P-64316
Dawidsoni
» 2012-09-03 20:25:03
@waxx

Dlaczego animacja sprajta != tweenowanie?

To nie jest przekombinowane, tylko zrobione tak, żeby nie działało tylko na sprajtach, ale na wszystkim co się da rysować. Może z początku wygląda zawile... To, że zrobiłem osobną klasę do uruchamiania animacji, nie oznacza, że kod jest przekombinowany, bo to niesie ze sobą dodatkowe korzyści...
P-64323
bingo009
» 2012-09-03 20:32:17
Co do klasy postać i animacja, nie lepiej było by klase z animacją zrobić dziedziczną?
P-64324
DejaVu
» 2012-09-03 21:50:22
Hm... na Games Bonanza sprzed roku napisałem animację w oparciu o dziedziczenie (zapewne żeby było kodu mniej) ;p
C/C++
//Deklaracja w Animation.hpp
class CAnimation
    : public sf::Sprite
{
public:
    CAnimationSequence m_sequence;
    CAnimation( const char * sAnimationName );
    void nextFrame();
}; //class CAnimation

//Implementacja w Animation.cpp
CAnimation::CAnimation( const char * sAnimationName )
{
    m_sequence = sequence( sAnimationName );
    std::string sFileName = m_sequence.getCurrentFrame();
    SetImage( getImage( sFileName.c_str() ) );
}

void CAnimation::nextFrame()
{
    m_sequence.nextFrame();
    SetImage( getImage( m_sequence.getCurrentFrame().c_str() ) );
}
P-64330
RazzorFlame
» 2012-09-04 18:18:18
Ja sobie niedawno zrobiłem też taką klase. Pierw stworzyłem sobie klase "Frame". Posiadała ona 4 zmienne typu int które oznaczały pozycje wycinania na bitmapie i szerokość i wysokość. Poźniej stworzyłem klase "Animation" w której przechowywałem vector obiektów typu "Frame", prędkość zmieniania klatki itd, timer (sf::Clock) który odpowiadał za liczenie czasu i resetowałem go przy przeminięciu czasu zmieniania klatki. Poźniej stworzyłem klase "CSprite" przechowującą np. pozycje obrazka na oknie, timer przesuwania sie, kilka innych rzeczy i oczywiście vector obiektów typu "Animation". Wiesz dlaczego vector? Bo chciałem żeby ludek miał kilka animacji. Powiedzmy animacja 0 to stanie w miejscu, 1 to poruszanie sie, 2 to strzelanie itp.
P-64351
1 « 2 »
Poprzednia strona Strona 2 z 2