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

[SFML] Czas w grze

Ostatnio zmodyfikowano 2021-04-25 19:30
Autor Wiadomość
hakunamatata
Temat założony przez niniejszego użytkownika
[SFML] Czas w grze
» 2021-04-25 19:20:14
Hej, hej!
Czy zna ktoś jakiś tutorial odnośnie ruszenia w ruch w SFML?
mam coś takiego [podaje szablon] i chciałbym dodać, żeby zaczelo zyc wlasnym zyciem.
Nie mogę nic znaleźć, ew. nie umiem szukac

C/C++
int klawisz = 0;
// klawisz 1 - prawo 2 - lewo 3 - gora 4 - dol
( ... )


vector < sf::RectangleShape > update( vector < sf::RectangleShape > vec )
bool sprawdz( vector < sf::RectangleShape > temporary, int kierunek )
bool sprawdzjablko( vector < sf::RectangleShape > temporary, int x, int y )
sf::RectangleShape losuj( vector < sf::RectangleShape > vec, sf::RectangleShape jab )
void main()
{
   
( ... )
   
while( oknoAplikacji.isOpen() )
   
{
       
oknoAplikacji.clear();
       
if( koniecgry == 1 )
       
{
           
( ... )
       
}
       
if( koniecgry == 0 )
       
{
           
( ... )
       
}
       
sf::Event zdarzenie;
       
       
while( oknoAplikacji.pollEvent( zdarzenie ) && koniecgry == 0 )
       
{
           
           
jablko.setFillColor( sf::Color::Blue );
           
if( czlowiek[ 0 ].getPosition().x == jablko.getPosition().x && czlowiek[ 0 ].getPosition().y == jablko.getPosition().y )
           
{
               
               
( ... )
               
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Right ) {
                   
klawisz = 1;
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Left ) {
                   
klawisz = 2;
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Up ) {
                   
klawisz = 3;
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Down ) {
                   
klawisz = 4;
                   
( ... )
               
}
            }
           
else
           
{
               
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Right && sprawdz( czlowiek, 1 ) == true ) {
                   
klawisz = 1; // zeby waz wiedzial w ktora strone isc
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Left && sprawdz( czlowiek, 2 ) == true ) {
                   
klawisz = 2; // zeby waz wiedzial w ktora strone isc
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Up && sprawdz( czlowiek, 3 ) == true ) {
                   
klawisz = 3; // zeby waz wiedzial w ktora strone isc
                   
( ... )
               
}
               
else if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Down && sprawdz( czlowiek, 4 ) == true ) {
                   
klawisz = 4; // zeby waz wiedzial w ktora strone isc
                   
( ... )
               
}
               
               
( ... )
           
}
           
//zapis.close(); //koniec debugu
       
}
       
P-178509
DejaVu
» 2021-04-25 19:24:18
C/C++
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Right )
{
   
pozycjaGracza.x += 1; //Zwiększasz aktualną pozycję gracza o 1.
}
P-178510
hakunamatata
Temat założony przez niniejszego użytkownika
» 2021-04-25 19:30:02
To, to działa, chodzi mi o automatyczne puszczenie tego, tzn. jesli ostatni klawisz byl prawy, zeby waz podrozowal co xxx milisekund w prawo (dopoty inny klawisz nie zostanie uzyty)

Chodzi o dodanie tego elementu czasu.


Biblioteka sf::Clock? Jakiś przykładowy tutorial do niej?



edit:
jednak latwiejsze niż się wydawało. Można pozamykać :-)
P-178512
« 1 »
  Strona 1 z 1