游戏的中文文档
欢迎阅读Minecraftpy的官方中文文档。
这个文档主要讲述的是游戏的基本内容,而非特性,那是Minecraft wiki干的事。当然,也会涉及一些实现细节。
中文文档被分成了如下4个部分:
- 开始之前—您在游玩之前要做什么
- 游玩之时—准备游玩时,可以读一下这部分
- 致开发者—讲述游戏特定的实现细节
- 做出贡献—对于想要为游戏或文档做出贡献的人,应该阅读这一部分
我们欢迎您为该文档做出贡献,或者把它翻译到另一门语言。
那么,开始阅读吧!
下载&安装
通常情况下,游戏启动器会自动完成这个步骤,您只需指定一些参数。
这一节讲述的是如何手动下载并安装游戏至启动器。
阁下可以在这里获取游戏的全部源代码,使用git clone
或者直接下载压缩文件。
在开始下一步之前,您应先确保计算机上有 Python3.8 或更高版本并且安装有 pip 包管理程序。
游戏使用了很多依赖项,并且游戏的不同版本可能需要不同版本的依赖项,必须让不同版本的游戏运行在不同的虚拟环境内。使用 Python 自带的venv
就可以做到这一点。
这里不过多赘述虚拟环境的用法,查看标准库中 venv 的介绍以了解如何创建及激活虚拟环境。
确保在游戏源代码目录创建并激活了虚拟环境后,可输入以下命令来安装所有依赖项:
pip install -r requirements.txt
若上述命令没有出错,您便可以输入下面的命令来直接启动游戏:
python3 - m minecraft
可见,您并不需要安装即可游玩这个游戏。
场景的应用
游戏有着一堆界面,例如开始界面、创建存档的界面、设置参数的界面等等,然后才是实际游玩的界面。
为了方便实现这些功能而不是使用一堆if
,场景(Scene)就这样诞生了。
当然,该游戏也同样实现了场景这一功能,还是挺简单的说。
使用场景
欲使用场景,应先导入之:
from minecraft.scenes import Scene
from minecraft.utils.utils import *
场景继承自EventDispatcher
,这里不多赘述,可点击链接查看文档。
同时,场景有3个回调函数:
Scene.on_scene_enter()
—进入场景时调用Scene.on_scene_leave()
—离开场景时调用Scene.on_language_change()
—在改变语言时调用
创建好新的场景类后,需要把它的实例添加到一个字典(私有的)中才能访问。
添加并切换至一个名为MyScene
的代码如下所示:
class MyScene(Scene):
pass
get_game_window_instance().add_scene("ext:my_scene", MyScene)
get_game_window_instance().switch_scene("ext:my_scene")
我们并不赞成使用
get_game_window_instance()
获取游戏窗口的实例,您应该使用其它方法来达到相同的目的。
同时,add_scene
也可传入若干关键字参数和位置参数用于实例化类。
虽然程序对名称中是否添加主命名空间(这里是
ext
)没有硬性要求,但一直这样做是一个好习惯。
使用 GUIFrame
Scene.frame
为一个GUIFrame
1对象,监听各种事件并反应到小部件上。
需要注意的是,游戏会在进入或离开场景时强制启用或禁用Scene.frame
(通过enable
属性)。
关于小部件的详细描述,请转到使用小部件一节。
已有的场景
以下列出了原版游戏中所拥有的场景:
minecraft:start
—标题页面minecraft:singleplayer
—单人游戏的选择存档的场景
它们的代码都包含在 minecraft/scenes 目录中,可随时查看。
完整的命名空间为minecraft.gui.frame.GUIFrame
,该类重写于pyglet.gui.frame.Frame
。