日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩

發布時間:2024/3/13 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Raspbian操作系統默認搭載了一個特別的我的世界,特別之處在于可以使用python與外界進行交互,這意味著可以在游戲中控制實體世界中的傳感器和執行器。還可以自定義搭建各種物品。

1.使用python與minecraft交互
在交互的時候要用到應用程序接口(API),用鍵盤控制部分就不多說了,我直接說與python如何交互。
在python3 IDE中創建.py文本
作為程序員的行規,入手第一件事就是向世界問好

#向minecraft發送消息 from mcpi.minecraft import Minecraft mc = Minecraft.create() mc.postToChat("hello Minecraft World")

運行后效果出現

除此以外,還可以獲取角色在游戲中的實時位置

#獲取人物的環境和實時信息 from mcpi.minecraft import Minecraft mc = Minecraft.create() position=mc.player.getTilePos() print("X position :"+str(position.x)+",Y position :"+str(position.y)+",Z position:"+str(position.z))from mcpi.minecraft import Minecraft mc = Minecraft.create() mc.player.setPos(0,0,0)

獲取環境信息

#尋找世界中某個坐標點的地形情況 from mcpi.minecraft import Minecraft import mcpi.block as block def getSafePos(x_pos, y_pos, z_pos):black_id=mc.getBlock(x_pos,y_pos,z_pos)if(block_id==block.AIR.id):while(block_id==block.AIR.id):y_pos=y_pos-1block_id=mc.getBlock(x_pos,y_pos,z_pos)y_pos=y_pos+1else :while (block_id != block.AIR.id):y_pos=y_pos+1block_id=mc.getBlock(x_pos,y_pos,z_pos)return (x_pos,y_pos,z_pos) mc = Minecraft.create() mc.player.setPos(getSafePos(0,0,0))

注意:運行最后的代碼要確定周圍的環境情況,否則會造成人物無法運動,游戲也就無法進行下去。

import mcpi.minecraft as minecraft import mcpi.block as block from mcpi.minecraft import Minecraft from gpiozero import Button import time#設置按鍵所連接的GPIO端口 &將程序連接到Minecraft mc=Minecraft.create()BTN_HOUSE=18#房屋尺寸 house_size_x=16 house_size_y=6 house_size_z=10#將房屋坐標保存,方便傳送 #如果沒有定義,則設置為0,0,0 #wec3可以用來創建位置向量house_position=minecraft.Vec3(0,0,0)#移動前的延遲 DELAY=1#用于檢測按鍵的主循環 def main():btn_house=Button(BTN_HOUSE)while True:if(btn_house.is_pressed):#將當前坐標設置為房屋坐標#該坐標將會是房屋的中點house_position=mc.player.getTilePos()build_house(house_position,house_size_x,house_size_y,house_size_z)time.sleep(DELAY)time.sleep(0.2)def build_house (house_position,house_size_x,house_size_y,house_size_z):#平整土地mc.setBlocks(house_position.x-(house_size_x/2,house_position.y,house_position.z-(house_size_z/2),block.AIR.id)


這里就舉一個列子,同樣的方法建造墻壁,房屋的尺寸根據左上角的坐標來調整一下,如圖我是參考了github里面一位國外玩家的方法所做,等等,同樣用函數模塊化, 這里用到了mcpi.minecraft,mcpi.block,gpiozero

總結

以上是生活随笔為你收集整理的树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。