(看的真累啊,中间省略了好些,比较简单,现在看看怎么实现一个网络的游戏吧)
在这部分,我们会讨论不同的方法实现多玩家的功能。首先,我们看看加一个分屏的功能到你的游戏中,然后我们详细介绍用XNA框架的网络API创建一个新的游戏。
分屏功能
当在XNA中绘制一个场景时,有一个图形设备属性叫视口(ViewPort)本书中还没提到。视口本质上是一个表示屏幕坐标的矩形,当绘制时,图形设备把场景映射到其上。默认时,视口被设置成客户窗口的大小,这导致图形设备在整个游戏窗口中绘制。
分屏通过修改视口并多次绘制特定场景来实现,利用分给那个玩家的相机来绘制场景。
网络游戏开发
代替DirectPlay,DirectX开发者们被告知Windows Sockets将最终成为开发带网络功能的游戏的工具。
关于XNA网络API最好的事情是它多么好用啊!
XNA用Xbox LIVE和Games for Windows LIVE平台进行多玩家连接。
网络配置
当写一个网络游戏时要考虑的最重要的事情之一是你将使用什么类型的网络(点对点、CS或混合)
写一个XNA网络游戏
在XNA的任何网络游戏中的核心是NetworkSession类。这个类表示一个单独的多玩家会话。通过该类你能访问所有的会话的成员(通过AllGamers属性,这是一个Gamer对象集合),其他属性与多玩家会话有关。
PacketWriter向网络写信息包,PackerReader从网络读信息包。在Game1的Initialize中加入
Componets.Add(new GamerServicesComponent(this));
以启用所有的网络和游戏服务功能。它会自动地使你的游戏用Xbox LIVE和Game for Windows LIVE功能。
(总的感觉作者讲解通俗易懂,就像在听他上课,但是这本书涉及的东西太基础了,特别是3D方面的,讲的很少,建议看其他方面的书弥补)