MagPI 11 Page 19

De Le French MagPi
Aller à : Navigation, rechercher
mc.setBlocks(playerTilePos.x - 25, playerTilePos.y - 1, playerTilePos.z - 25, playerTilePos.x + 25, playerTilePos.y -1, playerTilePos.z + 25, block.DIAMOND_BLOCK)
mc.postToChat("Maintenant c'est un plancher de diamant !")

Pour récapituler les méthodes vues dans cet article :

  • postToChat(message) : communique avec le(s) joueur(s) dans le jeu.
  • getBlock(x, y, z) : renvoie le type de bloc à une position donnée.
  • setBlock(x, y, z, blockType, blockData) : change le type d'un bloc.
  • setBlocks(x1, y1, z1, x2, y2, z2, blockType, blockData) : change le type des blocs entre les deux jeux de coordonnées passées.
  • player.getPos() : la position précise du joueur.
  • player.setPos(x, y, z) : change la position du joueur.
  • player.getTilePos() : renvoie la position du bloc où se trouve le joueur.

L'API dispose de quelques autres méthodes qui mériteraient d'être découvertes. Cependant, en utilisant le petit nombre de méthodes vues dans cet article, il est possible de réaliser, avec un peu d'imagination et quelques connaissances en programmation, des constructions extraordinaires, des outils et autres utilitaires.

J'aime Minecraft. C'est un jeu extrêmement créatif et l'API de l'édition Pi ouvre de nouveaux horizons à notre créativité et l'on peut souhaiter que cela va encourager plus de gens à s'essayer à la programmation.


Création de l'image de couverture

Des blocs à la virtualité

Ian MacAlpine a créé l'impressionnante image de la magpie Minecraft de la couverture ce mois. Le MagPi a demandé à Ian comment il a fait cela :

Avec l'API Minecraft installée (voir le texte principal de l'article), j'ai décidé que je voulais créer une grande copie du logo du magazine qui serait facilement reconnaissable dans le monde du jeu, en utilisant Python. C'était mon tout premier programme Python. Coder la magpie plutôt que de la faire à la main me donnait la liberté de la placer partout dans le monde de Minecraft. Le tout était très expérimental, il fallait trouver un équilibre dans la pixellisation de manière à ce que l'image soit reconnaissable.

Ayant déterminé que j'étais limité à 8 teintes de noir/gris/blanc et 4 teintes de bleu en termes de blocs Minecraft, cela a contraint la pixellisation. En utilisant Gimp sur mon Raspberry Pi, j'ai pixellisé l'image de la magpie MagPi en une image de 43x44 blocs. Cela semblait être le bon équilibre... mais cela voulait aussi dire dessiner à la main 1892 carrés avec des blocs Minecraft ! On pouvait réduire ce chiffre, mais cela voulait dire plus de pixellisation et donc une magpie moins reconnaissable.

En Python, l'image est représentée par une liste de listes (c'est à dire un tableau à deux dimensions). Il a été assigné un caractère à chaque cellule du tableau ; 1 à 8 pour le noir, le gris et le blanc et A à D pour les nuances de bleu. 0 représentait le type de bloc "Air". Cinq autres variables ont été utilisées : 3 pour les coordonnées x, y et z, une pour l'angle dans le plan vertical (0, 90, 180 ou 270 degrés) et une variable pour indiquer si la magpie devait être affichée ou effacée. Une boucle FOR imbriquée balaie le tableau en 2D et affiche les blocs.

Parce que certain types de blocs ne peuvent être placés dans le vide, il est important de construire depuis le bas vers le haut. Lors de l'effacement (c'est à dire lorsqu'on remplace les blocs par des blocs de type "Air"), on doit effacer du haut vers le bas. Si vous effacer du bas vers le haut, certain blocs tomberont avant d'être effacés en laissant un tas de débris au sol !

Vous devriez faire une copie de sauvegarde de votre monde avant de construire de grandes structures comme celles-là car vous ferez certainement des erreurs de coordonnées. Ma fille Emilie, âgée de dix ans, a été très fâchée lorsque j'ai éradiqué son village ! Faites une copie du répertoire caché .minecraft dans votre répertoire d'accueil (utilisez la commande "ls -A" pour lister les fichiers cachés d'un répertoire) ainsi que du répertoire games dans le répertoire mcpi.


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils