C++/SFML strasznie zmula po odpaleniu

0

Witam, mam dziwny problem z biblioteką SFML. Nie wiem czy to wynika z mojego kodu czy może z czegoś innego. Mam prostą klasę odpowiedzialną (w przyszłości) za widok, poruszanie itp. mojego bohatera w grze. Wszystko wykonuje się w osobnym wątku. Na razie chcę go tylko poruszyć naciskając klawisz. Gdy naciskam debugowanie w Visualu program się kompiluje, odpala ale potem przywiesza i nie da się w niego żaden sposób ingerować - mój "bohater" prostokąt się nie wyświetla i nie mogę wcisnąć X żeby wyjść z programu. Myślę że to może być jakiś problem z tymi wątkami.

http://wklej.org/id/986796/

0

No raczej na pewno problem z wątkami. Tutaj nie ma żadnej synchronizacji pomiędzy nimi. W dodatku gdzie przechwytujesz input w metodzie run?
Co chcesz w ogóle otrzymać poprzez przerzucenie logiki gracza do oddzielnego wątku?

0

To jest praktycznie żywcem zjechane z dokumentacji i tutoriali. To powinno śmigać aż miło. Doczytałem przed chwilą że wszystkie eventy powinny być w funkcji main. Przeniosłem je z klasy Hero ale to nic nie dało.

Co chcesz w ogóle otrzymać poprzez przerzucenie logiki gracza do oddzielnego wątku?

Potem będę chciał stworzyć np. "boty" które np się poruszają, coś robią niezależnie od innych czynników które się równolegle wykonują w programie, jakieś zmienne warunki w grze itp.. Sama pętla nieskończona dla całej gry jest chyba dość prymitywnym sposobem radzenia sobie z takimi sytuacjami i pewnie nie zawsze zadziała.

0

Czy twoja gra będzie aż tak wymagająca, że będzie potrzebować wielowątkowości? W dodatku na jedno rdzeniowym procesorze to nic nie da, a nawet spadnie wydajność. Co będzie w sytuacji gdy pierwszy wątek chce rysować gracza, a drugi ustawia w tym samym czasie jego pozycję?

0

Tak staram się to pisać aby nie dochodziło do sytuacji kryzysowych a przecież przy każdym problemie nie będę obcinał funkcjonalności prawda? Nie o to w tym wszystkim chodzi. Nie piszę tej gry żeby ją sprzedać Blizzardowi za miliony $$ tylko żeby się czegoś nauczyć. Trafiłem na problem który chcę rozwiązać a nie obejść. Problem na pewno dot. wątków, jednak przykład wziąłem z dokumentacji gdzie wszystko powinno śmigać

http://www.sfml-dev.org/tutorials/2.0/system-thread.php na dole są przykłady z klasami

1 użytkowników online, w tym zalogowanych: 0, gości: 1