2012-10-30 2 views
0

나는 xna - 게임을 개발하고 몇 가지 문제가 발생했습니다. 우선 메인 루프의 서버에서 다음과 같이 정보를 얻는 것으로 시작했습니다.서버에서 정보를 처리하는 가장 좋은 방법은

player.X = client.GetInt32(); 
player.Y = client.GetInt32(); 
player.IsShooting = client.GetBoolean(); 

잠시 후이 코드를 별도의 클래스로 옮겼습니다 : ServerLayer.

처음에는 ServerLayer에 플레이어 인스턴스가 포함되었지만 잠시 후 ServerLayer는지도 및 폭탄에 대한 참조와 다른 것들을 포함합니다.

serverLayer.GetPosition(player); 

ServerLayer에서 : 메인 루프에서

: 그래서 내가 직접이 같은 방법으로 서버의 정보를 필요로하는 객체를 전달하기로 결정

public void GetPosition(Player player) 
{ 
    player.X = client.GetInt32(); 
    player.Y = client.GetInt32(); 
    player.IsShooting = client.GetBoolean(); 
} 

이 권리인가 그것을하는 방법? 일부 메소드 (GetInit 등)는 많은 인수를 취합니다.

답변

0

나에게 맞는 방법처럼 보이는데, 유일한 방법은 메서드 이름입니다. GetPosition 대신 UpdatePosition을 사용해야합니다.

소켓을 사용하여 클라이언트에서 서버로 데이터를 전송합니까? 각 와과 GetPosition 통화에서 패킷을 보낼 경우는 생산 environement에 매우 랙이 될 수있다 (각 프레임에서, 그래서 당신은 메인 루프에서 호출)

아마 당신은 한 번씩 80/100ms의

를 호출 할 수
관련 문제