개발자

C# 소켓프로그래밍을 이용한 축구 게임을 구현하고 싶습니다

2024년 06월 04일조회 85

저는 지금 c#을 이용하여 일대일 축구 게임을 picturebox를 이용하여 게임 구현을 완성한 상태입니다. 이제 남은건 소켓프로그램을 이용하여 서버와 클라이언트를 구현해내는 것인데 이 과정이 너무 어렵습니다. 키보드를 이용하여 picturebox들이 움직이고 닿을때마다 또 다른 picturebox들의 움직임을 이끌어내는 프로그램입니다. 소켓 프로그램을 이용하여 메세지를 주고 받는것은 이해를 하였지만 키보드로 인한 picturebox들의 움직임 처리를 주고받는 것에 대한 구현에 어려움을 느끼고있습니다. 도와주세요 ㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

아기 개발자님의 프로필 사진

저도 비슷한걸 구현해본적이 있는데요, 제 방법이 정석이라고 장담은 못하지만 제가 구상했던 방법을 공유해 드리겠습니다. 먼저 채팅기능을 구현하셨다고 하였으니 소켓을 사용한 데이터 전송은 이해하셨다고 생각하겠습니다. (클라이언트가 플레이어1, 서버가 플레이어2 라고 가정합니다.) (한 프레임에서 처리할 작업입니다.) 1) 클라이언트 컴퓨터는 키보드가 눌리면 직접 좌표를 update하는것이 아니라 서버 컴퓨터에 눌린 키보드 정보를 전송합니다. 2) 서버 컴퓨터는 자신이 누른 키보드와 클라이언트로 부터 받은 상대방 키보드 정보로 오브젝트들의 좌표값을 계산합니다. 3) 서버는 변경된 오브젝트들의 좌표를 클라이언트에 보내면 클라이언트는 좌표를 받아 UI를 update하고 동시에 서버도 좌표값을 바탕으로 UI를 update합니다. 이 과정은 반복문을 통해 실시간으로 이루어져야 하며 정보를 보낼때는 배열 형식으로 보내거나 문자열로 바꿔 보낸 뒤 클라이언트가 다시 split하는 방식을 사용해야 합니다. ex) [[p1의 x좌표, p1의 y좌표], [p2의 x좌표, p2의 y좌표], [공의 x좌표, 공의 y좌표], 승리 및 종료 여부]

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!