用C#+XML技术开发游戏SokobanPro
推箱子专业版是经典推箱子益智游戏的现代版。本文从XML技术的角度讨论了游戏的实现。下图是游戏运行中的快照。
推箱子专业版是经典推箱子益智游戏的现代版。游戏极其简单,却极具挑战性和吸引力。游戏的规则是将所有的盒子移动到正确的位置。你可以推一个箱子,而不是拉它。您可以通过按U键随时撤销上一步操作。
这款游戏的现代版现在可以在Sokoban Pro网站上找到。因为所有最重要的部分(比如读/写XML、移动和绘图)都在本文的源代码中提供了,所以我决定在这里讨论第一个原始版本。
与当前版本相比,最新版本(v1.0b)包括以下改进:
“官方”测试版
添加菜单支持。
我发现在每个关卡中改变窗口的大小是非常烦人的,所以在当前版本中它变成了固定的。
你可以在不同的关卡之间来回跳跃,但只能在你之前完成的关卡上。
撤消级别功能。
闪屏和图标
许多错误已被纠正。
也许还有其他人。
在游戏开始时,你可以创建一个新的玩家或者选择一个现有的玩家。既然推箱子Pro可以保存你的进度,那么你也可以选择是否要继续上一局。创建玩家后,可以选择关卡集。水平集包含任意多的水平。Sokoban Pro在最初的BoxWorld游戏中有前40关。关卡存储在XML文件中,这意味着您可以从互联网上的不同Sokoban站点下载关卡。你也可以创建自己的关卡。当你把它们放在等级目录中,Sokoban Pro会自动识别等级集。
你使用一个XML文件来实现保存游戏。它会保存上次完成的关卡集和上次玩过的关卡,这样你就可以从上次玩游戏的地方继续玩了。此外,它还会保存您已经完成的关卡以及相应的分数(移动和推动的次数)。如果你再玩一次,你的表现更好,那么你的分数将被更新。
基本上,游戏由以下几类组成:
水平集——包含水平集的所有信息(作者信息、水平数等)...).它还将水平集XML中的水平加载到内存中。
级别-表示级别集中的一个级别。这里发生的最重要的事情是,它跟踪你的所有动作。当玩家移动或推动一个盒子时,它会更新关卡中的物品。它更新相应的图形并实现撤销功能,最终在屏幕上绘制出关卡。
player data-跟踪所有玩家信息。基本上,它反映了你的保存游戏。
board(form)-主窗体处理所有玩家输入并初始化所有对象。
玩家(表格)-让你创建一个新的玩家或选择一个现有的玩家。
关卡(表格)-让你选择一个你想玩的关卡。
0条评论