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

SFML - Jak dodać timer do programu?

Ostatnio zmodyfikowano 2013-04-02 17:39
Autor Wiadomość
KamileN7
Temat założony przez niniejszego użytkownika
SFML - Jak dodać timer do programu?
» 2013-04-02 16:51:31
Otóż nie wiem jak to zrobić, w kursie na tej stronie nie ma nic o tym. Było coś w dokumentacji, ale nie wiem jak to zastosować;D Mógł by mi ktoś dodać timer do tego programu, bo jak czegoś nie zobaczę to się nie nauczę;D
Z góry dzięki za pomoc i za cierpliwość!

C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 600, 600, 32 ), "Pierwszy program" );
   
    sf::Texture test;
    test.loadFromFile( "test.jpg" );
    sf::Sprite obrazek;
    obrazek.setTexture( test );
   
    int PozycjaX = 150, PozycjaY = 150;
   
    while( oknoAplikacji.isOpen() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
            {
                oknoAplikacji.close();
            }
           
           
            if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
            {
                oknoAplikacji.close();
            }
        }
        if( sf::Keyboard::isKeyPressed( sf::Keyboard::W ) ) PozycjaY -= 1;
       
        if( sf::Keyboard::isKeyPressed( sf::Keyboard::S ) ) PozycjaY += 1;
       
        if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) ) PozycjaX -= 1;
       
        if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) ) PozycjaX += 1;
       
        oknoAplikacji.clear( sf::Color::Black );
        obrazek.setPosition( PozycjaX, PozycjaY );
        oknoAplikacji.draw( obrazek );
        oknoAplikacji.display();
    }
    return 0;
}
P-79792
czosnek17
» 2013-04-02 17:03:30
P-79793
KamileN7
Temat założony przez niniejszego użytkownika
» 2013-04-02 17:39:08
Ok dzięki, nareszcie jakiś dobry poradnik jak dodać timer.
Tu daje jeszcze jak ten "timer" dodałem do programu, jakby ktoś kiedyś tu zaglądał w poszukiwaniu rozwiązania ;D

C/C++
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 600, 600, 32 ), "Pierwszy program" );
   
    sf::Texture test;
    test.loadFromFile( "test.jpg" );
    sf::Sprite obrazek;
    obrazek.setTexture( test );
   
    int PozycjaX = 150, PozycjaY = 150;
   
    sf::Clock Zegar;
   
    float Akumulator = 0;
   
    float CzasKlatki = 0.01;
   
   
    while( oknoAplikacji.isOpen() )
    {
        Akumulator += Zegar.restart().asSeconds();
       
        sf::Event zdarzenie;
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
            {
                oknoAplikacji.close();
            }
           
           
            if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
            {
                oknoAplikacji.close();
            }
        }
       
        if( Akumulator > CzasKlatki )
        {
            if( sf::Keyboard::isKeyPressed( sf::Keyboard::W ) ) PozycjaY -= 1;
           
            if( sf::Keyboard::isKeyPressed( sf::Keyboard::S ) ) PozycjaY += 1;
           
            if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) ) PozycjaX -= 1;
           
            if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) ) PozycjaX += 1;
           
            Akumulator -= CzasKlatki;
        }
       
        oknoAplikacji.clear( sf::Color::Black );
        obrazek.setPosition( PozycjaX, PozycjaY );
        oknoAplikacji.draw( obrazek );
        oknoAplikacji.display();
    }
    return 0;
}

P-79795
« 1 »
  Strona 1 z 1