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

[SFML] Tworzona gra przycina

Ostatnio zmodyfikowano 2012-08-21 22:37
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
» 2012-08-20 01:15:20
Niestety to jest wersja release, debug i release chodzą tak samo.
P-63031
DejaVu
» 2012-08-20 01:18:13
Skoro chodzą tak samo to:
a) złożoność obliczeniową zastosowanych algorytmów masz fatalną (choć przy tym co widać na scenie to trudno o to).
b) dołączasz te same biblioteki do trybu debug i release
c) masz fatalną kartę graficzną - ale jeżeli inne gry działają dobrze to automatycznie wyklucza się ta opcja
d) nie używasz zegara wysokiej rozdzielczości do mierzenia 'czasów' o ile stosujesz synchronizację prędkości gry opartą o czas.
P-63032
diego997
Temat założony przez niniejszego użytkownika
» 2012-08-20 01:36:41
d) nie wiem czy o to chodzi ale używam czegoś takiego time.getElapsedTime().asMilliseconds(); Czy zamiast milliseconds powinno byc seconds ?



Pętla wygląd tak jak w jednym z artykułów który znalazłem na forum tzw. fixed steps, czyli:

C/C++
reset += time.getElapsedTime().asMilliseconds();
time.restart();

while( reset > 0.03f )
{
    Player.move();
    Map.move( View, Player );
   
   
    reset -= 0.03f;
}
P-63033
DejaVu
» 2012-08-20 01:42:45
Co to jest time? co to za klasa?

/edit:
Z wywołań metod wynika, że jest to klasa Time - czyli najgorszy możliwy crap do wykonywania tego typu pomiarów. Powinieneś użyć klasy Clock.

Po zapoznaniu się z dokumentacją stwierdziłem, że powyższe zdanie kupy się nie trzyma :P
P-63034
diego997
Temat założony przez niniejszego użytkownika
» 2012-08-20 01:50:16
Kurcze niestety to jest sf::Clock :(.
P-63035
DejaVu
» 2012-08-20 01:56:13
No dobra - skoro tak to powiedz mi:
C/C++
double a = time.getElapsedTime().asMilliseconds();
Sleep( 500 );
double b = time.getElapsedTime().asMilliseconds();
double c = b - a;
Ile Twoim zdaniem wynosi wartość zmiennej c? (orientacyjnie) A potem zastanów się jaki ma sens zapis reset > 0.03f skoro dodajesz 'c' do zmiennej 'reset'.

/edit:
Zmieniłem temat na właściwy i tym samym dział.
P-63036
diego997
Temat założony przez niniejszego użytkownika
» 2012-08-20 02:06:56
Wiesz ja tak robię bo poniżej jest time.restart();


Czekaj do końca nie rozumie tego co napisałeś a pewnie to jest ważne :D

Chciałem tylko jeszcze szybko napisać że podczas debugowania mam taki warning:


warging LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
P-63037
DejaVu
» 2012-08-20 02:10:23
Tego warninga też mam w swoich projektach opartych na SFML-u - i nic na niego nie poradzisz bo wynika on z biblioteki którą musisz dołączyć do projektu, a skompilowanie jej samodzielnie to jakaś totalna abstrakcja (mi się jej nie udało skompilować pod Visualem).
P-63038
1 2 « 3 » 4 5
Poprzednia strona Strona 3 z 5 Następna strona