【Python玩轉Minecraft】35石英鐘,代碼部分

2022-01-08 python編程之道

本文內容將為大家介紹如何在我的世界Minecraft中建造一個「石英鐘」(代碼部分如下)。

代碼內容

import mathfrom mcpi.minecraft import Minecraftimport mcpi.block as blockimport timeimport datetimemc = Minecraft.create()pos = mc.player.getTilePos()x,y,z = 600,60,800def drawPlate(centerX,centerY,centerZ,radius,blocktype):    for x in range(-1*radius,radius+1):        for y in range(-1*radius,radius+1):            if x**2 + y**2 <= radius**2:                x1 = centerX + x                y1 = centerY + y                z1 = centerZ                mc.setBlock(x1,y1,z1,blocktype)def drawPlateTick(centerX,centerY,centerZ,radius,tickLength,blocktype):    for i in range(12):        for j in range(tickLength):            x1 = centerX + (radius-j)*math.sin(math.radians(i*30))            y1 = centerY + (radius-j)*math.cos(math.radians(i*30))            z1 = centerZ            mc.setBlock(x1,y1,z1,blocktype)
def drawSecondNeedle(centerX,centerY,centerZ,secondLength,blocktype): for i in range(secondLength): x1 = centerX + i*math.sin(math.radians(second*6)) y1 = centerY + i*math.cos(math.radians(second*6)) z1 = centerZ + 1 mc.setBlock(x1,y1,z1,blocktype)
def drawMinuteNeedle(centerX,centerY,centerZ,minuteLength,blocktype): for i in range(minuteLength): x1 = centerX + i*math.sin(math.radians(minute*6)) y1 = centerY + i*math.cos(math.radians(minute*6)) z1 = centerZ + 1 mc.setBlock(x1,y1,z1,blocktype)def drawHourNeedle(centerX,centerY,centerZ,hourLength,blocktype): for i in range(hourLength): x1 = centerX + i*math.sin(math.radians(hour*30+minute*0.5)) y1 = centerY + i*math.cos(math.radians(hour*30+minute*0.5)) z1 = centerZ + 1 mc.setBlock(x1,y1,z1,blocktype)
radius = 30tickLength = 5secondLength = round(0.9*radius)minuteLength = round(0.7*radius)hourLength = round(0.5*radius)drawPlate(x,y,z,radius,block.SEA_LANTERN)drawPlateTick(x,y,z,radius,tickLength,blocktype=block.WOOL_BLACK)while True: timeNow = datetime.datetime.now() second = timeNow.second minute = timeNow.minute hour = timeNow.hour % 12 drawSecondNeedle(x,y,z,secondLength,block.EMERALD_BLOCK) drawMinuteNeedle(x,y,z,minuteLength,block.DIAMOND_BLOCK) drawHourNeedle(x,y,z,hourLength,block.GOLD_BLOCK) time.sleep(0.8) mc.setBlocks(x-radius,y-radius,z+1,x+radius,y+radius,z+1,block.AIR)

運行效果展示

夜間效果

往期文章及視頻連結:

【python玩轉我的世界】01基本情況介紹

【python玩轉我的世界】02建造磚塊的基本方法

【python玩轉我的世界】03用磚塊疊加建造柱子

【python玩轉我的世界】04建造天梯,登高望遠

【python玩轉我的世界】05檢閱千奇百怪的磚塊

【python玩轉我的世界】06種一支不斷生長的翡翠樹

【python玩轉我的世界】07建造一所簡單的房屋

【python玩轉我的世界】08修改參數後,房屋門窗對頭了

【python玩轉我的世界】09建造不同材料的金字塔

【python玩轉我的世界】10改進金字塔,修復小bug

【python玩轉我的世界】11巨大的疊羅漢金字塔,流觴曲水

【python玩轉我的世界】12改進一下上個金字塔

【python玩轉Minecraft】13畫個半徑十麥塊的球

【python玩轉Minecraft】14建造黃金星球

【python玩轉Minecraft】15構建函數,函數建球

【python玩轉Minecraft】16巖漿引爆TNT星球

【python玩轉Minecraft】17黑暗夜空中發光星球

【Python玩轉MC】17建造發光夜空星球代碼部分

【python玩轉Minecraft】18畫一個圓圈

【Python玩轉Minecraft】18畫圓圈代碼部分

【python玩轉Minecraft】19畫圓餅

【python玩轉Minecraft】20畫圓管畫圓桶

【Python玩轉Minecraft】19-20代碼部分

【python玩轉Minecraft】21把豎著的圓圈橫過來

【Python玩轉Minecraft】21節視頻代碼詳細內容

【python玩轉Minecraft】22函數式畫餅,鑽石餅

【python玩轉Minecraft】22函數式畫餅,鑽石餅代碼詳解

【Python玩轉Minecraft】23節視頻代碼部分

【Python玩轉Minecraft】24節視頻代碼部分

【python玩轉Minecraft】24三個相互垂直的圓餅

【Python玩轉Minecraft】25七彩斑斕彩虹代碼部分

【python玩轉Minecraft】25彩虹,七彩斑斕

【python玩轉Minecraft】26空心的球,只有外殼

【Python玩轉Minecraft】26中空的球代碼部分

【python玩轉Minecraft】27大豬小豬落玉盤

【python玩轉Minecraft】28大蛛小蛛落玉盤

【Python玩轉Minecraft】27-28代碼部分

【python玩轉Minecraft】29花菇牛

【python玩轉Minecraft】30下箭鏃雨

【python玩轉Minecraft】31轟炸清理,水漫金山

【python玩轉Minecraft】32飛龍烈焰人炸出彈坑

【python玩轉Minecraft】33本想搞建設,卻瘸了

【python玩轉Minecraft】34失敗的退耕還湖

相關焦點

  • 【Python玩轉Minecraft】39期,金字塔代碼部分
    畫一個圓圈【Python玩轉Minecraft】18畫圓圈代碼部分【python玩轉Minecraft】19畫圓餅【python玩轉Minecraft】20畫圓管畫圓桶【Python玩轉Minecraft】19-20代碼部分【python玩轉Minecraft】21把豎著的圓圈橫過來【
  • 翻譯:Python控制樹莓派版Minecraft入門大揭秘
    from mcpi import minecraftmc = minecraft.Minecraft.create()mc.postToChat("Hello world")如果你在python交互式命令行輸入上述命令,每條命令後面要敲回車。
  • Minecraft:用Python在「我的世界」中建造大金字塔
    Python是十分強大的程式語言,對數學函數支持的非常好,因此可以用python語言來完成這個金字塔的建造。每一個三角面需要三個頂點坐標,所以需要一數據結構保存三個頂點坐標數據trianglePoints = [] trianglePoints.append(minecraft.Vec3(point1X, pyramidMiddle.y
  • 安裝可以支持Python的Minecraft Server
    首先通過git 克隆原始碼git clone https://github.com/TeachCraft/TeachCraft-Server.git通過以下命令啟動Serverpython ./wrapper
  • 玩轉算法 - Python歸併排序
    直到所有元素排序完畢,即序列數為1算法分析最壞時間複雜度 O(nlogn)最優時間複雜度 O(nlogn)平均時間複雜度 O(nlogn)手撕代碼代碼託管於github:liuzhen153/play-algorithm-python
  • python自動化PPT:如何玩轉自選圖形
    python自動化PPT:如何玩轉自選圖形上節對python自動化PPT的圖形基本概念做了詳細介紹,當然,要作出一篇精彩的PPT文檔,精彩的自選圖形必須要掌握,這節繼續來解讀這方面的知識。如何玩轉自選圖形自選圖形基礎自動形狀是規則的形狀。
  • python自動化辦公:玩轉word之樣式秘笈
    上節對python如何定製word的頁眉頁腳做了詳細介紹,當然,要作出一篇精彩的word文檔,樣式公布可沒,本章繼續介紹python如何玩轉word的樣式。使用樣式python如何玩轉word的樣式此頁面使用前一頁中開發的概念而不作介紹。如果術語不熟悉,請參閱word的樣式參考。
  • 在Python裡玩轉JSON數據
    比如最簡單的這種:「{"name" : "zhuxiao5"}」,跟python 裡的字典似的,也是一個Json格式的數據。 json.dumps() 是將 python 對象轉化為 json。json.loads() 是將 json 轉化為 python 對象。
  • 雙劍合璧,Python調用C代碼
    既然C語言的效率高,那麼我們把程序中對性能要求較高的部分用C語言來實現就是一種解決方案。在本文中,我們將用C語言實現一個Python模塊,並在Python代碼中對其進行調用。首先我們創建一個.c文件,並且加入#include <Python.h>其中包含了必要的用C語言實現的Python對象setup.py接下來,我們利用Python中提供方法將C代碼作為擴展模塊加入到
  • 25個有用的 Python 代碼段
    與其他程式語言相比,Python 的優勢在於:與主要平臺和作業系統兼容;有許多開源框架和工具;代碼具備可讀性和可維護性;健壯的標準庫;標準測試驅動開發在本文中,我將介紹 25 個簡短且有用的代碼段,它們可以幫你完成日常任務。
  • 張成林康巴絲是石英鐘代名詞
    康巴絲就是石英鐘石英鐘就是康巴絲  我是1976年進廠,濟南表廠,在車間裡負責外殼的加工製造,待了差不多半年的時間,調到辦公室來了。那時候,在濟南市,濟南表廠也算是比較好的單位了。表屬於精密加工,乾淨,環境相當好,第一淨化空氣,除塵;第二恆溫,穿白大褂子,滿足了年輕人的一種虛榮心。  我們1955年就建廠了,那時候叫鐘錶合作社。規模很小,才幾十個人。
  • 在Rust 代碼中編寫 Python 是種怎樣的體驗?
    ; run_python("print(\"... World!\")");}我們可以使用std::process::命令來運行python可執行文件並傳遞python代碼,從而實現run_python,但如果我們希望能夠定義和讀回Python變量,那麼最好從使用PyO3庫開始。
  • Python 入門系列 —— 3. 代碼縮進和注釋
    C:\Users\Your Name>python myfile.pyPython 縮進 縮進 指的是代碼行開頭處的空格,在其他程式語言中使用的 縮進 僅僅是為了提高可讀性,而在 python 中這個縮進卻是非常重要的,它決定了你的語法是否正確。
  • python發布代碼教程
    (一)發布代碼首先做好發布前的準備工作。在D:\創建一個文件夾mymodule,其中包含mymodule.py和setup.py(包含發布的元數據)兩個文件。文件內容如下:mymodule.py是一個模塊文件,其內容就是tria函數。
  • Python代碼如何升級為Pythonic 代碼
    符合這樣要求的代碼也被python社區稱為pythonic的代碼。正文共:7841 字預計閱讀時間:20 分鐘Python是當今最流行的語言之一。相對較新的領域如數據科學、人工智慧、機器人和數據分析,以及傳統的專業如Web開發和科學研究等,都在擁抱Python。對於用Python這樣的動態語言編寫代碼的程式設計師來說,確保代碼的高質量和無錯誤變得越來越重要。
  • Minecraft:基於GameTest框架編寫模組
    BlockLocation類的文檔(部分)      相比腳本引擎的「ECS架構」,此模式更加模塊化,語法上相對更為簡潔,一定程度上可減輕腳本編寫過程中由架構導致的代碼冗雜問題。而這裡的測試單元本質上就是通過mojang-gametest模塊註冊的腳本代碼,其本質上只是一個javascript函數,裡面包含了如測試結構(由遊戲中結構方塊導出的結構文件)的設置、判定斷言及測試執行的時長限定等內容。
  • Python代碼技巧,你值得擁有!
    如何將python代碼打包成獨立的二進位文件需要編譯的python代碼如下:#!/usr/bin/env python# -*- coding: utf-8 -*-print 'hello, world!'
  • 怎麼給家裡的石英鐘換機芯
    石英鐘價格便宜,不用上發條,時間走得準,家裡沒有石英鐘的,還真的很少了,但是,石英鐘的機芯也經常更新換代,以前的石英鐘,指針一跳一跳的,半夜裡那明顯的滴嗒聲,有的時候真的覺著有些擾人清夢,當然,還要別的很多原因要更換機芯的,就不一一列舉了。。。
  • 運行你的第一句 Python 代碼
    ,你是否也想寫下並運行你的第一句代碼?要想運行你的代碼,必須有代碼解釋器,將代碼轉換為機器可懂的語言,否則,代碼寫的再好,也只是對牛彈琴。 那麼,對新手來說,最友好的python解釋器和編程環境是什麼呢? 當然是Anaconda !
  • 帶你和Python與R一起玩轉數據科學: 探索性數據分析(附代碼)
    本系列將介紹如何在現在工作中用兩種最流行的開源平臺玩轉數據科學。先來看一看數據分析過程中的關鍵步驟 – 探索性數據分析。內容簡介本系列將介紹如何在現在工作中用兩種最流行的開源平臺玩轉數據科學。這系列教程的所有代碼和應用程式可以從GitHub(https://github.com/jadianes/data-science-your-way)中得到。你可以隨意參與並同我們分享你的進度。準備數據我們將繼續使用在介紹數據框時已經裝載過的相同的數據集。