[SFML] Tworzenie sf::Event
Ostatnio zmodyfikowano 2011-07-04 04:47
akwes Temat założony przez niniejszego użytkownika |
[SFML] Tworzenie sf::Event » 2011-07-03 22:58:54 czytam sobie kurs i tam jest taki kod: #include <SFML/Graphics.hpp>
int main() { sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Kurs SFML - http://cpp0x.pl" ); while( oknoAplikacji.IsOpened() ) { sf::Event zdarzenie; while( oknoAplikacji.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == sf::Event::Closed ) oknoAplikacji.Close(); if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape ) oknoAplikacji.Close(); if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle ) oknoAplikacji.Close(); } oknoAplikacji.Clear( sf::Color( 255, 0, 0 ) ); oknoAplikacji.Display(); } return 0; }
Czy tworzenie obiektu sf::Event za każdym obiegiem pętli while jest czymś dyktowane? Czy można ją umieścić pod instrukcją tworzenia obiektu RenderWindow? |
|
WiecznyWem |
» 2011-07-03 23:03:11 Można robić tak i tak :D Osobiście wolę trzymać tuż przy sf::RenderWindow. Tak czy siak linijkę później jest nadana tej zmiennej wartość.
Eee, a nie prościej Ci było to po prostu sprawdzić?
|
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-07-03 23:14:21 Nie chodzi mi o to czy się skompiluje ale jak zachowuje się kompilator. Czy warto zwracać uwagę na to że przez 1000 obiegów pętli, kompilator 1000 razy będzie marnował czas na niszczenie starego obiektu (po wyjściu zakresu ważności) i 1000 razy marnował czas na tworzeniu nowego obiektu. Czy kompilator to jakoś zoptymalizuje w procesie optymalizacji kodu, który wykonuje albo czy czas jest ten tak znikomy że nie ma się tym nawet co przejmować? Po prostu wychodzę z założenia że jeżeli od początku dbam jak mogę o kod to jest lepszy, niż jak od razu robię taki bałagan jak pod koniec :P Lubie dopieszczać kod.
|
|
DejaVu |
» 2011-07-04 04:16:35 sf::Event jest tak lekką klasą, że choćbyś tworzył ją 500tys razy na sekundę to byś tego nie odczuł :) To są operacje na stosie, więc alokacje takie są nieodczuwalne dla programu - inaczej sprawa by się miała z new/delete :) |
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-07-04 04:47:44 Dobrze wiedzieć, bo miałem właśnie obawy przed chwilą czy wysyłać Event do własnej klasy czy jakoś inaczej rozwiązać.
// edit faktycznie, dopiero przy 50000000 ilości konstruowań FPS spadł do 10 : ) |
|
« 1 » |