This blog post is written by Chris Penn for the Virtual Pi Jam #PiParty
What you will need:
- A Raspberry Pi with Minecraft Pi edition / Windows Laptop with Minecraft Java edition
- Python 3
- A Micro:bit
- Read this blog on how to get started with David Whales BitIO library. (here)
Introduction
This code uses the Micro:bit as an interactive controller in Minecraft. You can read all about it in BitIO blog 1 here to fully understand how to set it up and run it. But suffice to say that the Brains behind it is David Whale. Over the course of the the last 8 months I have been integrating the Micro:bit into my Minecraft coding experiments.
This is the latest… you will…………………..
Steps…
- Build a strip of TNT blocks in Minecraft Pi / Java edition.
- Set a start position for the character in the world.
- Plug in the Micro:bit
- Open Idle / thonny / MU etc. Copy the code from below. Check for errors.
- Run the code and then click the ‘a’ button as many times as you can in a given time period I’ve set it to for 14 seconds for now.
- Race your mates, the ultimate winner is who can click the most in the time available. This will propel you along the TNT track and at the end reset your position.
Race your mates and celebrate the Raspberry Pi Birthday weekend on the 3-4 of March.
Once you have read all of the stuff above you can either download the completed code from the link below or follow the instructions above to complete the code, then run it. Good luck.
Example screenshots
Code (python)
#Written by Chris Penn 21/01/18 MB Transport. Adapted to Mini game 03/03/18 by Chris Penn
import time import microbit from mcpi.minecraft import Minecraft import time import random
mc = Minecraft.create()
LineColour = 46#block type of powered blocks
#initial research from here about timers #https://www.tutorialspoint.com/python/time_clock.htm
def procedure(): time.sleep(0.0001)
Start_Time = time.time() Total_Time = 0.0 Button_Presses = 0
#set starting position mc.player.setPos(-80,81,-248)# start position / reset race insert your own start coordinates here
while Total_Time <= 12.0:
if microbit.button_a.was_pressed():#while a button being pressed keep going fwd Button_Presses = Button_Presses +1 procedure() Total_Time = time.time() – Start_Time print(Total_Time,”Seconds lapsed”) x,y,z = mc.player.getPos() #get block -1 CurrentBlock = mc.getBlock(x,y-1,z) #Go straight ahead #if block -1 == 46 then if CurrentBlock == 46 & mc.getBlock(x,y-1,z-1)== 46:#1ststraight mc.player.setPos(x,y,z-1) if CurrentBlock == 46 & mc.getBlock(x,y+1,z+1)== 46:#1ststraight mc.player.setPos(x,y+1,z+1)
mc.player.setPos(-80,81,-248)#reset race insert your own start coordinates here print(Button_Presses,” clicks in 12 seconds”)
|