移动精灵从不同的电脑

本文关键字:电脑 精灵 移动 | 更新日期: 2023-09-27 18:05:03

我正在做一项任务,我需要使用XNA开发机器人环境,并使用c# TCP/IP套接字技术从另一台计算机控制机器人。但是当我将服务器代码插入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);
}

任何想法?

移动精灵从不同的电脑

我不是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方法。

您还应该考虑将运行时间添加到您的动作中,因此在每台计算机上都是相同的速度。