[SFML 1.6] Prosta animacja ludka problem ze znikaniem
Ostatnio zmodyfikowano 2012-07-11 08:04
wojownik266 Temat założony przez niniejszego użytkownika |
[SFML 1.6] Prosta animacja ludka problem ze znikaniem » 2012-07-11 07:54:36 Kiedy nacisnę klawisz to ludek znika. Kiedy puszczę to ludek się pojawia. Co zrobić aby ludek nie znikał?
#include <iostream> #include <SFML/Graphics.hpp>
#define ScreenWidth 800 #define ScreenHeight 600
#define sDown 128 #define sLeft 191 #define sRight 64 #define sUp 0
int main() { sf::RenderWindow Window( sf::VideoMode( ScreenWidth, ScreenHeight, 32 ), "SFML Animacja" ); sf::Image tempImage; sf::Sprite playerSprte; if( tempImage.LoadFromFile( "word.jpg" ) ) playerSprte.SetImage( tempImage ); float velx = 0, vely = 0; float x = 10, y = 10, moveSpeed = 0.1; int sourceX = 0, sourceY = sDown; while( Window.IsOpened() ) { sf::Event Event; while( Window.GetEvent( Event ) ) { if( Event.Type == sf::Event::Closed || Event.Key.Code == sf::Key::Escape ) Window.Close(); } if( Window.GetInput().IsKeyDown( sf::Key::Right ) ) { sourceY = sRight; velx = moveSpeed; } else if( Window.GetInput().IsKeyDown( sf::Key::Left ) ) { sourceY = sLeft; velx = - moveSpeed; } else velx = 0; if( Window.GetInput().IsKeyDown( sf::Key::Up ) ) { sourceY = sUp; vely = - moveSpeed; } else if( Window.GetInput().IsKeyDown( sf::Key::Down ) ) { sourceY = sDown; vely = moveSpeed; } else vely = 0; x += velx; y += vely; if( velx != 0 || vely != 0 ) sourceX += tempImage.GetWidth() / 4; else sourceX = 0; if( sourceX == tempImage.GetWidth() ) sourceX = 0; Window.Clear(); playerSprte.SetSubRect( sf::IntRect( sourceX, sourceY, sourceX + tempImage.GetWidth() / 4, sourceY + tempImage.GetHeight() / 4 ) ); playerSprte.SetPosition( x, y ); Window.Draw( playerSprte ); Window.Display(); } return 0; }
|
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2012-07-11 08:04:48 Już sobie poradziłem. Aby usunąć problem ze znikaniem wystarczyło zmienić tą instrukcje. Dodać "/4".
if( sourceX == tempImage.GetWidth() / 4 ) sourceX = 0;
|
|
« 1 » |