[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 » |