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

[SFML, C++] Jak zrobić animacje?

Ostatnio zmodyfikowano 2012-03-10 09:55
Autor Wiadomość
Gal
Temat założony przez niniejszego użytkownika
[SFML, C++] Jak zrobić animacje?
» 2012-03-08 21:11:24
witam chciałbym wiedziać jak najlepiej zrobić animacje polegająca na pojawianiu się np: postaci w kilku innych pozycjach w ciągu określonego czasu np: idzie ludek i za kazdym razem ma inne polozenie nog ja zrobiłem to tak stworzylem 3 rysunki ludka w roznych momentach ruchu i stworzylem nastepujący kod
C/C++
if( ruch )
{
    animacja++;
    if( animacja == 300 )
    {
        animacja = 0;
        ktory++;
        if( ktory == 5 )
             ktory = 1;
       
        if( ktory == 1 )
             ludek1.SetImage( obraz1 );
       
        if( ktory == 2 )
             ludek1.SetImage( obraz2 );
       
        if( ktory == 3 )
             ludek1.SetImage( obraz3 );
       
        if( ktory == 4 )
             ludek1.SetImage( obraz2 );
       
    }
   
}
czy to dobry sposob czy mozna to zrobic lepiej inaczej?
P-52227
Dragonit
» 2012-03-08 22:16:29
A nie lepiej ci zrobić z tych 3 obrazków jeden a klatkowy ?
P-52229
Gal
Temat założony przez niniejszego użytkownika
» 2012-03-08 23:08:08
a jak to sie robi? byl bym wdzieczny jakbys mi to wytlumaczyl
P-52239
Dragonit
» 2012-03-08 23:26:00
Rysujesz (powiedzmy w Paincie) kolejne klatki animacji. Zapisujesz jako jeden plik.
Później piszesz sobie funkcję, która wyświetli po kolei odpowiednie klatki co da nam animację.

Poczytaj tutaj: http://www.easykoder.vot.pl/arty/animacja_postaci
P-52241
pekfos
» 2012-03-09 15:00:15
Zaraz pewnie napisze, że nadal nie wie jak zrobić, bo tam jest Allegro a tu SFML..

http://www.sfml-dev.org/documentation/
I szukając w dokumentacji trafiłbyś tu:
sf::Sprite::SetSubRect()
Morał: walcz z lenistwem, używaj dokumentacji.
P-52274
Gal
Temat założony przez niniejszego użytkownika
» 2012-03-09 19:33:39
nie znam angielskiego wiec nigdzie bym nie trafil ale dzieki :P
Interesuje mnie tez czy musze liczyć przejscia petli zeby animacja zmieniała się co jakiś czas czy da się to zrobić inaczej(mądrzej)
P-52312
Dark
» 2012-03-09 22:29:56
Przecież w animacjach chodzi o to aby odpowiednie klatki wyświetlały się co określony okres czasu. Najpierw zrób animację później ją rozwijaj, i tak trzeba używać liczenia pętli bo jak inaczej wiedzieć kiedy ją wyświetlić. Gdy będziesz miał więcej opcji takich jak ruch, skok, strzelanie itp. wtedy też trzeba określić co i jak ma się wyświetlać, no i co idzie w ruch? Zmienna przechowująca liczbę pętli. Jak nie znasz angielskiego to czas aby się go nauczyć bez niego matmy i fizyki nie zrobisz rozbudowanej gry( wiadomo o co chodzi).
P-52337
hincu
» 2012-03-10 09:55:56
@Dark, od takich rzeczy sa timery nie zliczanie petli, tak wiec masz pewien tam timer
sf::Clock Timer;
sf::Sprite SpriteA;

C/C++
void animation( sf::Sprite & Sprite, sf::Clock & Timer, float co_ile )
{
    if( Timer.GetElapsedTime() >= co_ile )
    {
        nastepna klatka
       
        Timer.Reset();
        )
prosciej sie tego chyba nie da przedstawic
P-52343
« 1 »
  Strona 1 z 1