minecraft同步时钟-python

import mcpi.minecraft as minecraft
import mcpi.block as block
import mcpi.minecraftstuff as minecraftstuff
import time
import datetime
import math
def findPointOnCircle(cx,cy,radius,angle):
    x = cx + math.sin(math.radians(angle))*radius
    y = cy + math.cos(math.radians(angle))*radius
    x = int(round(x))
    y = int(round(y))
    return (x,y)
mc = minecraft.Minecraft.create()
mcdrawing = minecraftstuff.MinecraftDrawing(mc)
pos = mc.player.getTilePos()
clockMiddle = pos
clockMiddle.y+=25

CLOCK_RADIUS = 20
HOUR_HAND_LENGTH = 10
MIN_HAND_LENGTH = 18
SEC_HAND_LENGTH = 20
mcdrawing.drawCircle(clockMiddle.x,clockMiddle.y,clockMiddle.z,
                     CLOCK_RADIUS,block.DIAMOND_BLOCK.id)
while(1):
    timeNow = datetime.datetime.now()

    hours = timeNow.hour
    if(hours>=12):
        hours = timeNow.hour - 12

    minutes = timeNow.minute
    seconds = timeNow.second

    hourHandAngle = (360/12)*hours

    hourHandX,hourHandY = findPointOnCircle(
        clockMiddle.x,clockMiddle.y,
        HOUR_HAND_LENGTH,hourHandAngle)

    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z,
        hourHandX,hourHandY,clockMiddle.z,
        block.DIRT.id)


    minHandAngle = (360/60)*minutes
    minHandX,minHandY = findPointOnCircle(
        clockMiddle.x,clockMiddle.y,
        MIN_HAND_LENGTH,minHandAngle)
    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z-1,
        minHandX,minHandY,clockMiddle.z-1,
        block.WOOD_PLANKS.id)



    secHandAngle = (360/60)*seconds

    secHandX,secHandY = findPointOnCircle(
        clockMiddle.x,clockMiddle.y,
        SEC_HAND_LENGTH,secHandAngle)

    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z+1,
        secHandX,secHandY,clockMiddle.z+1,
        block.STONE.id)



    time.sleep(1)



    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z,
        hourHandX,hourHandY,clockMiddle.z,
        block.AIR.id)
    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z-1,
        minHandX,minHandY,clockMiddle.z-1,
        block.AIR.id)
    mcdrawing.drawLine(
        clockMiddle.x,clockMiddle.y,clockMiddle.z+1,
        secHandX,secHandY,clockMiddle.z+1,
        block.AIR.id)

minecraft同步时钟-python_第1张图片

你可能感兴趣的:(python)