Minecraft 编程 心得
以下主要为本人所记录学习过程及心得
参考学习书目:《零基础学Minecraft编程》
准备工作:
Minecraft版本 1.6.4 http://pan.baidu.com/s/1bo7AaNd
Python下载安装:
https://www.python.org/download/releases/2.7.6/
初学者工具包:
http://as.wiley.com/WileyCDA/Section/id-823690.html
安装工具包里的Minecraft服务器端Bukit,目录 AIMStarterKitPC\AdventuresInMinecraft\Bukkit
运行Minecraft前启动Bukki:运行 start.exe(目录 AIMStarterKitPC\AdventuresInMinecraft\Bukkit ) 启动 Bukkitt服务器(保留命令窗口界面,在命令窗口输入“stop”停止Bukkit)
选择“多人游戏”,服务器地址中输入“localhost”
第一步:HelloMinecraftWorld
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
mc.postToChat("Hello Minecraft World")
保持四个窗口:
F5运行HelloMinecraftWorld.py
第二步:获取玩家位置
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
pos = mc.player.getTilePos()
print("x = " + str(pos.x))
print("y = " + str(pos.y))
print("z = " + str(pos.z))
显示到Minecraft聊天窗口:
mc.postToChat(" x = " + str(pos.x) + " y = " + str(pos.y) + " z = " + str(pos.z))
运用死循环实时显示位置:
import mcpi.minecraft as minecraft
import time
mc = minecraft.Minecraft.create()
while True:
time.sleep(1)
pos = mc.player.getTilePos()
mc.postToChat(" x = " + str(pos.x) + " y = " + str(pos.y) + " z = " + str(pos.z))
(跳出死循环的唯一方法就是终止Python程序,在Python Shell菜单上选择Shell→Restart Shell,或在Python Shell界面 ctrl+c 来终止IDLE中的程序。)
第三步:“欢迎回家”
在 Python Shell 上练习 if 语句
第一段代码:
第二段代码:
选一块方块制作地毯
站在地毯上,再次运行WhereAmI.py 记下当前x y z坐标
以下是我的地毯坐标
import mcpi.minecraft as minecraft
import time
mc = minecraft.Minecraft.create()
while True:
time.sleep(1)
pos = mc.player.getTilePos()
if pos.x == -515 and pos.z == 5 or pos.z == 4:
mc.postToChat("Welcome Home !")
第四步:收取租金
先在MC中用栅栏围一个区域作为场地
运行WhereAmI.py记录场地四个角的坐标
我建的坐标为
import mcpi.minecraft as minecraft
import time
mc = minecraft.Minecraft.create()
x1 = -530
x2 = -520
z1 = -3
z2 = 9
rent = 0
while True:
time.sleep(1)
pos = mc.player.getTilePos()
if pos.x>x1 and pos.x
z1 and pos.z
在场地待太久弹起玩家
import mcpi.minecraft as minecraft
import time
mc = minecraft.Minecraft.create()
x1 = -530
x2 = -520
z1 = -3
z2 = 9
HOME_X = x2+2
HOME_Y = 30
HOME_Z = z2+2
rent = 0
inField = 0
while True:
time.sleep(1)
pos = mc.player.getTilePos()
if pos.x>x1 and pos.x
z1 and pos.z
F5运行 呆久了就会弹到HOME_X,HOME_Y,HOME_Z指定坐标位置