我的世界python指令攻略_PYTHON玩转我的世界——找钻石小游戏

原标题:PYTHON玩转我的世界——找钻石小游戏

非常简单的小游戏,总共代码50多行,新手也很容易理解。

游戏效果

随机放置一个钻石在玩家附近,同时每隔1秒在消息框中提示钻石和玩家之间的距离,并提示出是远离钻石还是接近钻石,玩家走到钻石边上,游戏结束,提示用时多少秒。

游戏演示视频

视频加载中...

程序代码import mcpi.minecraft as minecraft import time import random import math # 获取两点之间的距离 def distanceBetweenPoints(point1, point2): xd = point2.x - point1.x yd = point2.y - point1.y zd = point2.z - point1.z return math.sqrt((xd * xd) + (yd * yd) + (zd * zd)) if __name__ == "__main__": mc = minecraft.Minecraft.create time.sleep(2) playerPos = mc.player.getTilePos # 随机产生钻石坐标 randomBlockPos = playerPos randomBlockPos.x = random.randrange(randomBlockPos.x - 50, randomBlockPos.x + 50) randomBlockPos.y = random.randrange(randomBlockPos.y - 5, randomBlockPos.y + 5) randomBlockPos.z = random.randrange(randomBlockPos.z - 50, randomBlockPos.z + 50) # 放置一个钻石 mc.setBlock(randomBlockPos.x, randomBlockPos.y, randomBlockPos.z, 'DIAMOND_BLOCK') mc.postToChat("一个钻石被藏了起来,去把它找出来吧!") # 开始主循环 seeking = True lastDistanceFromBlock = -1 timeStarted = time.time while (seeking == True): time.sleep(2) # 获取玩家位置 playerPos = mc.player.getPos # 获取玩家位置和钻石位置的距离 distanceFromBlock = distanceBetweenPoints(randomBlockPos, playerPos) if lastDistanceFromBlock >= 0: if distanceFromBlock < 2: # 找到钻石! seeking = False else: if distanceFromBlock < lastDistanceFromBlock: mc.postToChat("目标接近中...距离:" + str(int(distanceFromBlock))) if distanceFromBlock > lastDistanceFromBlock: mc.postToChat("目标远离中...距离:" + str(int(distanceFromBlock))) lastDistanceFromBlock = distanceFromBlock timeTaken = time.time - timeStarted mc.postToChat("找到了!用时:" + str(int(timeTaken)) + "秒")

参考资料:https://blog.csdn.net/gogir/article/details/100074563

参考资料:https://www.stuffaboutcode.com/2013/01/raspberry-pi-minecraft-hide-and-seek.html返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值