一、启动Minecraft(《我的世界》)
1、启动Start_Server
2、启动“启动侠”
二、操作Minecraf
1、操作角色
- 移动角色
- 上升下降
- 切换人称、查看状态、切换全屏
2、设置Minecraf环境
- 改变时间
- 改变天气
- 游戏模式
- 防止破坏
三、使用变量传递角色
1、认识世界坐标
2、将角色传递到某处
3、使用时间模块降低传送速度
4、使用注释让你的程序更易于理解
看了上节课的内容,你们搭建好Minecraft的环境了么?今天我们就要来用Python玩Minecraft了,我们先来启动它。
一、启动Minecraft
先双击Start_Sever文件,启动服务器。
接着双击“Minecraft启动侠”启动游戏。
如何启动游戏上次课程李老师已经介绍过了,如果还有什么不懂的地方,你们也可以再去复习一下上节课的内容,这里就不在赘述。
二、操作Minecraft
1、键盘操作
下面我们来看看如何在Minecraft中操作角色,在刚刚打开Minecraft时,我们是用第一人称看世界的,这种视角对下面我们造房并不友好,所以我们可以用F5键将视角改为第三人称。用WASD四个键我们可以移动角色,如果我们一不小心掉进坑里,我们可以用空格键跳出来,如果我们想飞高点看看远处的世界,可以快速按两下空格,然后再长按空格飞起来,如果要想落地,就再快速按两下空格就落回地面,竟然一点也没伤到,是不是很神奇?如果你想暂时释放鼠标去编写程序,就按下ESC暂停一下,接着你可以去干其它事儿了。
2、环境设置
糟糕,我的世界打开为什么黑呼呼的,还在下雨,突然想起一句歌词“雨纷纷,旧故里草木深;我听闻,你始终一个人…"哎,我的世界总是孤独的一个人。。。
让我们按下ESC键,到Start_Server窗口下去敲击一些命令,让我们的心情变得开朗吧~
1)设置时间
在命令行中输入我们希望世界的时间
time set (数值)
我的世界怎么调时间:天黑的时候做实验也是各种不方便,time set 13000 可以让我们享受夕阳。
返回游戏,哇,太美了!每天的这个时候,李老师最喜欢站在玄武湖畔呆呆地凝望,想起一首诗“夕阳无限好,只是近黄昏。”如此壮丽的景象,为什么只有夕阳才有,是不是对人生最后的倔强。好啦,其实大自然每天都有美景,我们珍惜每一天。
大家记住下面的时间点哦:
time set 0 天刚亮
time set 10000 差不多正午
time set 13000(夕阳)time set 15000(午夜)
time set 21000 天就黑了
2)设定天气
“雨一直下,气氛不太融洽“为什么分手总是在雨天,这种天气总是很容易抑郁,让我们变个魔术,让天也晴朗起来吧。还是回到Start_Server窗口下,输入这样一句话:
weather clear
再来看看效果:
天终于放晴了,心情也开朗了。
输入指令:“weather thunder”,就可以切换为雷雨天了。
如果天气干旱,就输入指令“weather rain”,浇灌下干涸的大地吧。
3)打开生存模式
打开生存模式,可以不需要担心损失健康,感到饥饿或被攻击,全心全意去创造世界。
但也许你为了更有乐趣而想接受生存模式的挑战,在创造模式和生存模式之间进行切换也非常简单。
要想将服务器中的创建模式改为生存模式,请按照以下几点去做。打开 Minecraft Tools 文件夹,然后打开 server 文件夹。找到 server.properties 文件夹并从目录中打开,使用记事本工具打开就可以。
在这个文件里,找到“gamemode=1”并将它改为"gamemode=0”,保存这个文件并关闭。
在Minecraft Tools文件夹中单击 Start Server 来运行服务器,当你登录 Minecraft Python World 游戏时,将处于生存模式。
4)防止破坏
我们游戏的主人公简直就是个破坏王,如果一不小心点个鼠标,面前的方块就被他给砸了,我现在得把他手上的锤子给没收了,否则我的成果一定全部被他全部破坏了。
下面我们打开Pycharm,就在我们上次编写的程序上添加一句命令并执行:
mc.setting("world_immutable",True)
添加这个命令,可以帮助你保护珍贵的作品,使其免遭破坏。
三、使用变量传送
1、认识世界坐标
请大家回忆一下,我们在scratch中是怎样将一个角色从一个位置瞬移到另一个位置,所用的命令是“移到x,y”x,y是平面上某点的坐标。在minecraft中,世界是立体的,除了平面坐标外,我们还需要一个高度的坐标,这样才能表示一个东西在空间上的位置,下面就让我们来认识一下Minecraft中的坐标。Minecraft角色在世界中有一个位置(position),它是由x、y、z坐标构成的。字母y代表的是高度,x和z代表的是在水平面上的位置。我们可以把世界上每个整数坐标都想象成一个方块,我们编程要做的事情就是改变这些方块的性质。
我们可以按键盘上的F3键去查看玩家角色所在的位置。
2、将角色传递到某处
在Minecraft中有两个命令可以用来传送角色:
mc.player.setTilePos(x,y,z)
mc.player.setPos(x,y,z)
我们在Pycharm测试一下,我们分别设置x,y,z为10,110和12:
我们突然发现,我们到了一个黑乎乎什么也看不见的地方,让我们修改下坐标值。
这个时候,我们落在了一个跟刚才不太一样的地方了。
mc.player.setTilePos(x,y,z)和mc.player.setPos(x,y,z)有什么区别呢?mc.player.setTilePos(x,y,z)中的x,y,z必须是整数,而mc.player.setPos(x,y,z)中的x,y,z可以是浮点数,你可以看做是小数。x,y,z除了正数外,可以是负数。
为了不要反复写两个命令,我们可以先将x,y,z的值设置为三个变量,那么我们以后需要修改角色位置的时候,只要修改三个变量就可以了。
y不是100的原因是如果角色不在地面上,会自动落回地面,y就显示的是地面的数值了。
3、使用时间模块降低传递速度
Python 会尽可能快地运行你的程序,但是你也可以人为地让它减速。比如,让它等待一段时间再继续工作。如果想要在你的程序中用到 time(时间)模块,你需要在程序的最上面加入下面这一行代码:
import time
然后我们用time.sleep(时间)来控制时间暂停的长度。
4、添加注释
为了让我们能更好地理解程序的作用,我们经常需要在一段程序块前面加上注释,注释的内容不会被执行,但是它可以很好地告诉我们程序的作用,当我们在很长时间不用这段程序的时候,再次看起来,也可以清楚地回忆起程序的作用。
注释的写法是
# 注释内容
下面我们来编写一个完整的python程序,用来移动游戏角色,并给它取名为tour.py
#连接到 Minecraft
from mcpi.minecraft import Minecraft
mc = Minecraft.create()
import time
#设置x、y和z变量来表示坐标
x = 50
y = 88
Z = 100
#变换玩家的位置
mc.player.setTilePos(x,y,z)
#等待10秒
time.sleep(10)
#设置x、y和z变量来表示坐标
x = 200
y = 100
z = 400
#变换玩家的位置
mc.player.setTilePos(x,y,z)
我们发现,执行了tour.py后,角色在10秒后发生了移动。
你学到了什么
恭喜!你己经学会了编写第一个python 程序来控制 Minecraft中玩家的位置了。你也已经认识了两种全新的数据:整数和浮点数。你还学到了Minecraft Python 中两个重要的 API 接口:setPos() 和 setTilePos()。将来你会慢慢了解如何在Minecraft 中快速搭建建筑,使用数学运算的方法和函数来设定砖块的摆放。
欢迎大家继续跟着李老师学习用python玩Minecraft,我们下期见!