65.9K
CodeProject 正在变化。 阅读更多。
Home

Pocket PC 版“黑匣子”

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.36/5 (7投票s)

2004年5月29日

CPOL

2分钟阅读

viewsIcon

48222

downloadIcon

286

一款适合PocketPC的酷炫益智游戏。

Sample Image - pocketblackbox2.jpg

引言

黑盒子是一款简单有趣的益智游戏,可以在闲暇时间玩耍。我最初的方案是用VS 6.0和C++编写这个程序。但是,利用.NET Compact Framework和C#编写代码,我能够轻松快捷地创建一个可在任何运行该框架的平台上使用的漂亮小应用程序,效率更高,时间更短。

如何玩

游戏的目标是在棋盘上找到所有磁铁。磁铁的数量在“磁铁”菜单中设置。绿色方块是发射的光束,无论是光源还是目的地。点击光束会打开它及其目的地,并为其分配一个编号。游戏中的磁铁的位置使得所有光束都能到达其目的地,并从目的地返回光源。游戏中的磁铁会使光线沿磁铁边缘的垂直方向偏转,或沿相同方向反射光线。一个磁铁有4个边缘,所以光线共有4种偏转方式,有4个面,共有4束反射光线。你的任务是根据每束光线的起点和终点确定棋盘上磁铁的位置,用旗帜标记每个磁铁,当你标记了所有磁铁时(有点像扫雷)就获胜了。

关注点

该应用程序通过最大限度地减少游戏过程中使用的资源来优化Pocket PC环境。游戏的实现通过仅重新渲染游戏中任何给定点的已更改图块来限制要渲染的信息量。

黑盒子的设计目的是让它在两个平台上都有相同的外观和感觉,只需调整应用程序主窗体的大小,这就足够了,这使得它成为一个非常容易编写的应用程序,无需构建即可在两个平台上运行。

使用代码

以下是一些这个应用程序中可能很有用的东西(我经常忘记这些东西,能够查阅它们真好)

  • **运算符重载** - Vec struct 使用运算符重载,以便您可以对加法、乘法等使用正常的向量表示法。这使得代码更容易阅读,也说明了为什么Java不如C#酷。
  • **[] 运算符重载** - 这对于允许强类型集合很有用。Box 类使用它来使用单个一维数组创建一个二维矩阵存储结构。

谢谢

  • 所有酷炫编码示例的MSDN。
  • Lewey Geselowitz - 为我编写应用程序提供了一些技巧,并帮助我进行设置。
© . All rights reserved.