PocketPC 或 .NET 的颜色入侵






3.83/5 (15投票s)
这是我为 2004 年 5 月的 .NET CF 竞赛提交的作品。这是一款利用 PocketPC 的 .NET Compact Framework 的游戏,展示了 .NET CF 的易用性和强大功能。游戏支持单人模式(对抗电脑)或网络或互联网连接的多人模式。
引言
这款游戏展示了简单而强大的 .NET Compact Framework,它允许同时为 PocketPC 和 PC 进行开发。代码演示了多线程、通过 TCP/IP 进行网络通信、使用图形进行绘图以及简单的游戏和 AI 机制。这款游戏基于我在一个卡车停靠站看到的一款类似《风险》的街机游戏。
背景
此版本游戏灵感来源于 2004 年 5 月的 .NET Compact Framework 竞赛。它使用 C# 编写。网络代码是此次的亮点,代表了我第一次尝试网络编程,而 .NET CF 使这项工作变得非常简单。
使用代码
.NET Framework 的优势在于,源代码包含了一个编译后的帮助文件(.chm),其中记录了命名空间、类及其方法/属性。
要编译代码,您需要 VC.NET,并且可能需要下载 Microsoft 的嵌入式 VC 4.0。只需编译并部署到 PocketPC、Pocket 模拟器,或直接从您的机器运行。
关注点
这是我第一次尝试制作游戏,也是第一次进行网络编程。.NET CF 使我能够非常快速地完成这两件事。
我注意到 .NET 和 .NET CF 为我提供了许多好处。
- 更快的开发速度! .NET Compact Framework 提供了您所需的命名空间和类,触手可及,您可以利用自动完成功能快速完成开发。
- 可移植性! 用 C# 开发,并在 PC 和 PocketPC 上运行。一旦我将 PC 版本转换为 .NET,就可以轻松地在 PC 或 PocketPC 上执行二进制文件!有了 .NET CF,我可以为其他移动设备重新编译!测量一次,切割两次……无限循环。
- 网络通信。 WAN 卡最酷的用途莫过于与其他 PocketPC 用户对战!我告诉您:玩同一款游戏、同一个可执行文件,对抗运行您新款 WAN PocketPC 的电脑用户。也许您没有 Pocket……电脑对电脑——通过互联网!
- 可绕过防火墙工作——只需连接到网络上未受防火墙保护的其他人。
- 可通过局域网工作——它会显示您的 IP 地址,以便即时通讯或告诉朋友如何连接。如果您在防火墙后面,您的互联网 IP 地址将与您的局域网 IP 地址相同。
- 更优的绘图代码
- 更小的分发包,因为我使用了 .NET 中的 GDI+ 类,而不是位图。
Graphics
类允许仅重绘更新的图块,而不是重绘整个屏幕。- 使用 .NET GDI+ 绘制复杂的填充多边形。
- 带有垃圾回收的集合! 无需像使用通用容器那样使用外部工具集,集合与 C# .NET 的风格和约定保持一致。
- 源代码文档: .NET 指定了一种用于注释的模式,该模式允许生成 XML 格式的注释。遵循规则,使用 IDE 提供的工具,您就可以生成供您或您的团队将来引用的文档!
规则
- 每个玩家都从各自的角落以默认颜色开始。主机(或单人游戏)位于左下角。加入游戏的客户端位于右上角。
- 他们轮流切换颜色。
- 您不能切换到与对手相同的颜色。
游戏玩法
当您切换颜色时,您当前集合周围的任何图块都会被添加到您的集合中。游戏的目的是占据棋盘上的大部分区域。如果您通过 TCP 与另一个人玩游戏,则轮流进行。如果您是单人玩家,则电脑 AI 会立即轮流并返回。您赢得的游戏越多,AI 就会越难。如果您连赢 6 场,AI 将达到最难的级别。如果您能击败它,那么您就需要与人类对战!
多人模式
要使多人游戏正常工作,您必须遵循以下步骤:
- 在两台机器上执行可执行文件,然后在单人游戏对话框中选择“否”。
- 记下主机的 IP 地址,并将其转告给另一位玩家。启动您的局域网或互联网连接的主机。
- 如果“网络”和“局域网”IP 地址相同,则此客户端无法通过互联网托管游戏,但它可以加入在互联网上托管的游戏。
- 如果您要通过互联网托管,请选中“网络”单选按钮,然后按“主机”。
- 如果两台机器都在本地区域网络(LAN)上,则任何一台机器都可以托管。
- 主机运行后,让客户端在框中输入 IP 地址,然后按“加入”按钮。
- 即使您在防火墙后面,您也应该能够连接到互联网上未受防火墙保护的主机。
- 如果两台机器都在防火墙后面,则无法建立连接。
- 如果两台机器都在同一防火墙后面,请通过局域网连接。
- 连接建立后,主机将生成一个棋盘并将其发送给加入的玩家。
- 主机是第一个玩家,在两台机器上都位于左下角。主机先走第一步。直到轮到加入的客户端时,它的按钮才会被启用。
- 客户端是第二位玩家,它的图块位于右上角。
- 游戏结束后,它会告诉您谁赢了,并询问您是否要再次玩。如果您想再次玩,请选择“是”。
- 如果您连接到一台机器,它会询问您是否想使用相同的连接再玩一局。
要求
需要您下载并安装 .NET CF 到您的移动设备上。这只需要做一次,就可以享受后续的大量应用程序了。
屏幕截图
这是模拟器和桌面电脑之间比赛开始时的截图。注意,棋盘是相同的,这意味着它们已连接并且正在玩!
这是计算机和另一台计算机之间比赛开始时的截图。注意,棋盘是相同的,这意味着它们已连接并且正在玩!
这是网络连接框的截图。如果您单击“网络”,您将获得您的连接 IP 服务。如果您在防火墙后面,您将在此框中获得局域网 IP。如果您单击“局域网”,您可以看到您的局域网 IP 地址。
特别感谢
没有亲人和朋友,我们将何去何从? 特别感谢所有测试并为本项目提出建议的人。
- 测试者
- 我亲爱的妻子,谢谢。
- 我的家人为测试它。
- 我的父亲告诉我,“仅仅因为我写了它”,并不意味着他不能轻易击败我。
- GameDev.Net 的团队测试了 Win32 版本。
- 建议者
- 以上所有。
特别感谢 Lewey Geselowitz 先生,他帮助我调试了这个应用程序,在她的 PocketPC 上编译和测试,并提供了各种有益的建议。干杯!