Étape 8: Contrôle des trucs dans Minecraft
Ici, il vous faudra une configuration de Minecraft qui peut gérer des scripts Python qui utilisent l’API de PI de Minecraft. Si vous avez un PI de framboise, vous êtes prêt. Dans le cas contraire, vous devrez configurer les choses. J’ai utilisé mon RaspberryJamMod avec Forge sur Windows : instructions complètes sont ici. (Autres options : serveur Bukkit et RaspberryJuice, Minecraft Pocket Edition et RaspberryJamMod ou même Minetest et RaspberryJamMod.)
Déposez le script espremote.py du référentiel de la Thingy dans votre répertoire de scripts python de Minecraft (p. ex., .minecraft/mcpipy) et de modifier l’adresse IP par défaut. Voici un simple script d’etch-a-sketch 3D travaillant avec notre télécommande Philips DVD que mon fils de 11 ans a écrit avec l’aide :
from mcturtle import * from espremote import* t=Turtle() r=ESPRemote() t.gridalign() t.turtle(None) while True: event=r.getevent() if event.data&0xfff==0x458: t.go(1) elif event.data&0xfff==0x459: t.go(-1) elif event.data&0xfff==0x45b: t.yaw(90) t.go(1) t.yaw(-90) elif event.data&0xfff==0x45a: t.yaw(-90) t.go(1) t.yaw(90) elif event.data&0xfff==0x45c: t.pitch(90) t.go(1) t.pitch(-90) elif event.data&0xfff==0x42c: t.pitch(-90) t.go(1) t.pitch(90) else: t.mc.postToChat(hex(event.data))
La dernière ligne lui permettre de vérifier quelles touches faire quoi comme il développait le script. Les touches de la télécommande lui permettent de déplacer la tortue de Minecraft dans toutes les directions de six.
Voici un script simple qui tire une boule géante diamant sous le joueur chaque fois que la baguette de Magiquest est agitée :
from mc import * from mcturtle import * from espremote import * r = ESPRemote() mc = Minecraft() lastEvent = -10000 for e in r.getevents(): if e.time < lastEvent + 500: next lastEvent = e.time if e.format == "MAGIQUEST": t = Turtle(mc) t.penwidth(30) t.penblock(DIAMOND_BLOCK) t.go(0) t.pitch(90) t.penup() t.go(32) t.pitch(-90)
Une chose un peu plus compliquée est mon script flyingpig.py qui vous permet d’utiliser notre hélicoptère Syma S107 distant pour contrôler un chat volant dans Minecraft. Vous pouvez également spécifier un argument de ligne de commande d’un différent type d’entité (par exemple, EntityHorse) ou moi de contrôler le lecteur (en mode de vol).