-3

XNA を使用してロボット環境を開発し、別のコンピューターから c# TCP/IP ソケット テクノロジを使用してロボットを制御する必要がある課題を行っています。しかし、サーバー コードを XNA に挿入すると、XNA は起動しますが、ゲームが読み込まれません。

 protected override void Update(GameTime gameTime)
{
//Server Settings
ipAddress = IPAddress.Parse("192.168.0.11");
myList = new TcpListener(ipAddress, 8000);
myList.Start();
s = myList.AcceptSocket();

b = new byte[100];
int? k = s.Receive(b);


// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();

if (Keyboard.GetState().IsKeyDown(Keys.Right))
//if (k != null)
myRectangle.X += 3;
if (Keyboard.GetState().IsKeyDown(Keys.Left))
myRectangle.X -= 3;
if (Keyboard.GetState().IsKeyDown(Keys.Up))
myRectangle.Y -= 3;
if (Keyboard.GetState().IsKeyDown(Keys.Down))
myRectangle.Y += 3;


//Screen Boundries
if (myRectangle.X <= 0)
myRectangle.X = 0;

if (myRectangle.X + myTexture.Width >= screenWidth)
myRectangle.X = screenWidth - myTexture.Width;

if (myRectangle.Y <= 0)
myRectangle.Y = 0;


s.Close();
myList.Stop();
base.Update(gameTime);
}

何か案が?????

4

1 に答える 1

1

私はTCPの天才ではありません...しかし、フレームごとに新しいTCPリスナーを作成しますか? それは問題になる可能性があります。

追加

ipAddress = IPAddress.Parse("192.168.0.11");
myList = new TcpListener(ipAddress, 8000);
myList.Start();
s = myList.AcceptSocket();

あなたの initialize() に

s.Close();
myList.Stop();

UnloadContent() または dispose メソッドに。

また、どのコンピューターでも同じ速度になるように、動きに経過時間を追加することも検討する必要があります。

于 2013-03-21T23:53:10.807 に答える