未知

ExpectoCastellum的Python项目详细描述


游戏引擎和基本地图构造

现在你有了一个游戏引擎。引擎是你构建和运行游戏的方式。对于所有的意图和目的来说,引擎就是游戏。主要方法有:新建、保存和播放。方法的完整列表如下。

让我们为测试游戏添加一些房间。我们可以通过以下两种方式之一添加房间:

< Buff行情> 走廊=test_game.new('房间',name='空走廊',description="它回应oes oes…") xyzy=测试游戏。新房间(名称='xyzy')

这两个方法都有效; new_room 使用第一个参数调用 new ,并且仅为方便起见。您可以使用可选参数定义新创建的房间的属性。 您必须提供新的房间、物品和NPC名称。此级别的规范对于引擎如何存储其数据是必需的。如果您忘记给您的房间命名,默认情况下,引擎会将其命名为"newroom"。更改文件室的名称,然后使用 test_game.update_game_dictionaries() 来确保文件室存储正确。

但是等等!我忘了给我的房间添加一些属性。别担心!这两个房间都是对象,您的引擎会在字典中跟踪它的房间,其中键为 room.name ,值为 room 。因此,以下两项均有效:

< Buff行情> corridor.start_location=真 test_game.roomdict['xyzzy'].description="您似乎正处于一个巨大洞穴探险的糟糕时期。"

现在,这不是一个合适的游戏地图。我们有两个房间,他们连在一起都没有!好吧,我们可以改变。每个房间都有一个名为"路径"的属性,这是一个以方向为键、房间名为值的字典。

< Buff行情> 测试游戏。roomdict['empty corridor'].添加路径({'n':'xyzy'}) xyzzy.paths={'s':'空走廊'}

我是故意的,故意的,可能会令人沮丧地与风格不一致,因为我想强调的是,有多种方法可以做事情,你应该以对你来说最有意义的方式来思考架构。在第一行中,我们通过引擎的 self.roomdict 访问名为"空走廊"的房间,并在房间对象上使用 add_paths 方法更新 test_game.roomdict['empty corridor'].paths with paths['n']=['xyzy'] 。第二行只是用适当的键和值替换默认的空房间 路径 字典。一般来说,除非一个房间只有一个连接,或者您非常了解您的地图,否则您可能希望使用"添加路径"。

每次在房间之间建立一个连接时,都要更新两个房间,这很乏味。好消息:你不必!每一个新的游戏引擎都会自动使用一个名为"镜像路径"的方法,该方法假设如果您从A房间向上到达B房间,那么您应该能够从B房间向下到达A房间,等等。

< Buff行情>

final_message=test_game.new('room',name="quentulus quazgar mountains",description="在山边的火信中拼写为:"我们对给您带来的不便深表歉意。") shire=test_game.new('room',name='the shire',description="这里是霍比特人。")

最终消息。添加路径({'e':'xyzy'}) 走廊。添加路径({'u':'the shire'})

test_game.save()

test_游戏中的 save 方法添加反向路径,以便玩家可以从夏尔(shire)通过向下、向北和向西到达昆都拉斯夸兹加尔山(quentulus quazgar mountains),然后保存您的编辑。如果要禁用路径镜像,只需将 test_game.mirror_paths 设置为 false

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用硬件相关VM参数(重新)启动Java应用程序的正确方法?   java有一个Eclipse插件弹出菜单,只有在选择文件夹时才会出现   java演示简单Ajax ans Servelt实现失败   java如何在不需要OAuth授权的情况下代表组织用户提供密码   java检查一个字符串是否等于另一个字符串的子字符串   java我可以从for循环中的1开始初始化2D数组吗   使用选择排序的java排序2D数组   java如何在一轮投票后重新开始,而不在其中存储统计数据   我的Java代码不断向文本文件添加重复项   java MapReduce Hadoop字长频率不起作用   试图保存Iterable时执行独立工作时发生java错误   java这两个源是同一个场景生成器吗?   java计划重试关联的JMS消息