Cześć, otóż mam pewien problem, mianowicie chciałbym stworzyć przy pomocy SFML grę, w której to dwóch graczy strzela do siebie za pomocą pocisków - kto pierwszy trafi przeciwnika ten wygrywa. Jako że nigdy nie programowałem aplikacji sieciowej to postawiłem przed sobą nie lada wyzwanie.
Z początku sobie poradziłem. Ustanowiłem połączenie oraz poradziłem sobie z wysyłaniem pakietu w przypadku zmiany pozycji drugiego gracza, dzięki czemu bez problemów działa poruszanie się i widać to na obydwu aplikacjach :) Jedyne co mi pozostało to wysyłanie zmiany pozycji pocisku i aktualizowanie go, ale tutaj niestety już nie wiem co jest przyczyną mojego niepowodzenia.
Na początku porwałem się od razu na głęboką wodę i chciałem wysyłać na raz pozycje wszystkich pociski, ale się mocno pogubiłem. Potem żeby spróbować to sobie ogarnąć to ograniczyłem ilość możliwych pocisków do wystrzelenia do 1, dzięki czemu nie ma takiej rozróby, co zobaczycie w kodzie poniżej.
Przechodząc do sedna: pakiet ze zmienną zawierającą nową pozycję pocisku normalnie dociera do gniazda, tylko problem w tym, że gdy przypisuje obiektowi bullet[0] nową pozycję to zamiast pociskowi przypisuje się ona dla gracza, przez co po wciśnięciu lewego przycisku myszy wystrzela się gracz, a nie pocisk Może jestem już zmęczony i popełniłem gdzieś głupi błąd, tak czy inaczej proszę o nakierowanie mnie na rozwiązanie problemu i i jakieś cenne wskazówki, bo mam wrażenie, że nie ogarniam programowania sieciowego zbyt dobrze. Cała akcja ma miejsce w metodzie update() w pliku multiplayer.cpp.
multiplayer.hpp
multiplayer.cpp
bullet.cpp
player.cpp
Pozdrawiam
żółwibekon