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

[SFML] losowe wyswietlanie sie sprajta

Ostatnio zmodyfikowano 2012-10-30 20:52
Autor Wiadomość
DanielSC
Temat założony przez niniejszego użytkownika
[SFML] losowe wyswietlanie sie sprajta
» 2012-10-30 09:18:46
Otóz chciałbym napisać aplikacje która co jakis czas wyswietlałaby  sprajt w innym miejscu.O to mój kod żrudłowy:


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


int main()
{
    srand( time( NULL ) );
    int polozeniex =( rand() % 400 ) + 1;
    int polozeniey =( rand() % 400 + 1 );
   
   
   
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Np" );
    sf::Image obrazek;
    sf::Image obrazek1;
    sf::Image tlo1;
   
    obrazek1.LoadFromFile( "kolo1.png" );
   
   
   
    sf::Sprite sprajt1;
   
   
   
   
    sprajt1.SetImage( obrazek1 );
    sprajt1.SetPosition( polozeniex, polozeniey );
    sprajt1.SetScale( 1, 1 );
    sf::Clock zegar;
    double reset;
    double czas = 0.50;
   
   
   
   
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
        }
        const sf::Input & sterowanie = oknoAplikacji.GetInput();
        if( sterowanie.IsKeyDown( sf::Key::Left ) )
        {
            sprajt1.Move( - 0.1, 0 );
           
        }
       
       
        if( sterowanie.IsKeyDown( sf::Key::Right ) )
             sprajt1.Move( + 0.1, 0 );
       
        if( sterowanie.IsKeyDown( sf::Key::Up ) )
        {
            sprajt1.Move( 0, - 0.1 );
           
        }
       
       
        if( sterowanie.IsKeyDown( sf::Key::Down ) )
             sprajt1.Move( 0, 0.1 ); //klawiatura
       
        if( sterowanie.IsMouseButtonDown( sf::Mouse::Left ) )
             sprajt1.Rotate( 0.7 );
       
        if( sterowanie.IsMouseButtonDown( sf::Mouse::Right ) )
             sprajt1.SetPosition( 0.1, 0.2 );
       
       
        if( zegar.GetElapsedTime() >= reset )
        {
            zegar.Reset();
            sprajt1.SetPosition( polozeniex, polozeniey );
        }
       
       
       
       
       
       
       
       
       
       
       
       
        oknoAplikacji.Clear( sf::Color( 0, 0, 0 ) );
       
        oknoAplikacji.Draw( sprajt1 );
       
       
        oknoAplikacji.Display();
       
    }
    return 0;
}
P-67968
DejaVu
» 2012-10-30 09:20:26
C/C++
if( zegar.GetElapsedTime() >= reset )
{
    zegar.Reset();
    sprajt1.SetPosition( polozeniex, polozeniey );
}
Losuj po prostu w tym miejscu nową pozycję.
P-67969
DanielSC
Temat założony przez niniejszego użytkownika
» 2012-10-30 20:52:00
C/C++
if( zegar.GetElapsedTime() >= reset )
{
    polozeniex =( rand() & 400 ) + 1;
    polozeniey =( rand() & 400 ) + 1;
    zegar.Reset();
    sprajt1.SetPosition( polozeniex, polozeniey );
   
}
O cos takiego chodzi?^
P-68020
« 1 »
  Strona 1 z 1