[SFML]Robienie określonych czynności co określony termin czasu
Ostatnio zmodyfikowano 2014-10-26 21:09
mcjulcz Temat założony przez niniejszego użytkownika  | 
[SFML]Robienie określonych czynności co określony termin czasu » 2014-10-26 18:50:39 Witam!Chciałem napisać snake'a ale potrzebowałem funkcji,który by odliczała czas nie zatrzymując programu.Znalazłem więc sf::Clock i sf::Time,ale nie umiem za pomocą ich sprawić,żeby jakaś czynność(np: ruch węża) wykonywała się co określoną ilość czasu(np: 1 sekundę).Więc mam prośbę.Jest jakiś szablon,który pozwala coś takiego zrobić?Chodzi o coś typu: sf::Clock; if(jakieś warunki) { rzeczy do zrobienia; } Pomożecie mi?Bo zatrzymałem się na pewnym etapie i nie mogę nic zrobić :(.  | 
 | 
Winner_Of_Death  | 
» 2014-10-26 19:23:04 sf::Clock zegar;
 
 
  if( zegar.getElapsedTime().asSeconds() == 1 ) {          zegar.restart(); }
  Coś takiego ?  | 
 | 
mcjulcz Temat założony przez niniejszego użytkownika  | 
» 2014-10-26 19:28:14 Dzięki za pomoc,ale jak na miejscu "//reszta kodu" wpisuje np: cout<<"a"<<endl; to nic nie wypisuje...Chodziło o to,żeby robiło coś co sekundę,a to nic nie robi...Pomożecie? PS: Jak zrobić taką ramkę z kodem?  | 
 | 
Parapet  | 
» 2014-10-26 20:14:39 Pokaż więcej kodu (też jak to wywołujesz).  | 
 | 
Winner_Of_Death  | 
» 2014-10-26 20:15:12 Ale Ty chcesz ten program robić w konsoli, czy w oknie w bibliotece SFML ?  | 
 | 
mcjulcz Temat założony przez niniejszego użytkownika  | 
» 2014-10-26 20:23:36  #include <SFML/Graphics.hpp> #include <SFML/System.hpp> #include <iostream>
  using namespace std; using namespace sf;
 
  Clock zegar;
  int main() {     RectangleShape kierunek(Vector2f(16,16));
      RenderWindow window(sf::VideoMode(800, 600), "Snake");
      while (window.isOpen())     {         sf::Event event;         while (window.pollEvent(event))         {             if (event.type == sf::Event::Closed)                 window.close();         }         kierunek.setFillColor(Color::Red);
          if( zegar.getElapsedTime().asSeconds() == 1 )         {             cout<<"up"<<endl;             zegar.restart();         }
          window.clear();
          window.draw(kierunek);
          window.display();     } }
 
 Chodziło mi,żeby wypisywało komunikaty o ruchu w konsoli i poruszało wężem jednocześnie,dlatego dałem cout<<"up"<<endl; .Ale nic nie wypisuje :( PS: Znalazłem na innej stronce jak robić ramki z kodem :)  | 
 | 
pekfos  | 
» 2014-10-26 20:59:21 if( zegar.getElapsedTime().asSeconds() == 1 )
   |  
 if( zegar.getElapsedTime().asSeconds() >= 1 )
   | 
 | 
mcjulcz Temat założony przez niniejszego użytkownika  | 
» 2014-10-26 21:09:19 Dzięki za pomoc :D.Wszystko działa :)  | 
 | 
|  « 1 »  |