개발자
저는 지금 c#을 이용하여 일대일 축구 게임을 picturebox를 이용하여 게임 구현을 완성한 상태입니다. 이제 남은건 소켓프로그램을 이용하여 서버와 클라이언트를 구현해내는 것인데 이 과정이 너무 어렵습니다. 키보드를 이용하여 picturebox들이 움직이고 닿을때마다 또 다른 picturebox들의 움직임을 이끌어내는 프로그램입니다. 소켓 프로그램을 이용하여 메세지를 주고 받는것은 이해를 하였지만 키보드로 인한 picturebox들의 움직임 처리를 주고받는 것에 대한 구현에 어려움을 느끼고있습니다. 도와주세요 ㅠㅠ
답변 1
저도 비슷한걸 구현해본적이 있는데요, 제 방법이 정석이라고 장담은 못하지만 제가 구상했던 방법을 공유해 드리겠습니다. 먼저 채팅기능을 구현하셨다고 하였으니 소켓을 사용한 데이터 전송은 이해하셨다고 생각하겠습니다. (클라이언트가 플레이어1, 서버가 플레이어2 라고 가정합니다.) (한 프레임에서 처리할 작업입니다.) 1) 클라이언트 컴퓨터는 키보드가 눌리면 직접 좌표를 update하는것이 아니라 서버 컴퓨터에 눌린 키보드 정보를 전송합니다. 2) 서버 컴퓨터는 자신이 누른 키보드와 클라이언트로 부터 받은 상대방 키보드 정보로 오브젝트들의 좌표값을 계산합니다. 3) 서버는 변경된 오브젝트들의 좌표를 클라이언트에 보내면 클라이언트는 좌표를 받아 UI를 update하고 동시에 서버도 좌표값을 바탕으로 UI를 update합니다. 이 과정은 반복문을 통해 실시간으로 이루어져야 하며 정보를 보낼때는 배열 형식으로 보내거나 문자열로 바꿔 보낸 뒤 클라이언트가 다시 split하는 방식을 사용해야 합니다. ex) [[p1의 x좌표, p1의 y좌표], [p2의 x좌표, p2의 y좌표], [공의 x좌표, 공의 y좌표], 승리 및 종료 여부]
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!