2013-03-21 109 views
-3

我正在做一个任务,我需要使用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); 
} 

任何想法?????

+1

你会得到什么错误?你有没有尝试单步执行代码? – MyCodeSucks 2013-03-21 16:39:16

+0

是的。我试过我没有收到任何错误,但没有发生任何事情 – mshiyam 2013-03-21 17:54:17

回答

1

我不是TCP上的天才......但做一个新的TCP侦听器每一帧?这可能是一个问题。

添加

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

要在初始化()

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

您UnloadContent()或处置方法。

你还应该考虑为你的动作增加流逝的时间,所以它在每台电脑上的速度都是一样的。