나는 gamekit 피어 투 피어 연결을 사용하는 bomberman 응용 프로그램을 코딩했습니다. 문제는 잠시 후 게임이 더 이상 동기화되지 않는다는 것입니다.게임 키트 피어 투 피어
GKTanks의 샘플 코드를보고 해당 모델을 사용했습니다. 동료 간에는 클라이언트/서버 관계가 없으므로 게임에서 사용하지 않았습니다. 두 피어는 수신 된 데이터를 기반으로 업데이트하는 gamestate를 유지합니다.
나는 각 프레임에서 게임을 실행하는 데 사용되는 NSTimer를 가지고 있습니다. NSTimers는 동기화되어 있지 않기 때문에 gamestates가 서로 다른 경우가 있습니다. 예 : 플레이어가 거의 동시에 전원을 켜면 둘 다 데이터를 보내는 데 시간이 걸리기 때문에 전원이 켜집니다.
나는 앱을 만드는 데 어떤 아이디어라도 주시면 감사하겠습니다. 나는 클라이언트 - 서버를 사용하기 위해 코드를 재 작성하려고 생각하고 있지만, 좋은 생각인지 확실하지 않다 ... 아직
고마워!
편집 : 임의의 플레이어가 호스트로 선정되도록 코드를 변경했습니다. 플레이어가 폭탄을 배치 할 때마다 서버에 배치 할 위치를 묻습니다. 서버는 플레이어 위치 (서버에 표시됨)를 반환 한 다음 플레이어에게 폭탄을 배치 할 위치를 알려줍니다.
전원 공급 장치의 경우 서버는 플레이어가 전원 공급을 받았는지 확인하고 그가 수행 한 경우 전원에게 알려주는 패킷을 보냅니다.
또 다른 문제가 발생했습니다. 기기 간 대기 시간이 깁니다 (블루투스 연결을 사용하고 있습니다). 클라이언트가 버튼을 두드린 후 폭탄을 놓는 데 약 0.2 초가 걸립니다.
모든 데이터가 안정적으로 전송됩니다. 이 일을 제대로하고 있습니까?
두 선수가 파워 업에 돌진 :