Python coding for Minecraft (11 / 15 étapes)

Étape 13 : Advanced notes 3: noeuds

Vous pouvez trouver une équation paramétrique pour noeuds sur le net. Cette fois, nous allons faire des choses un peu différents du précédent. Avant, nous avons eu des boucles conduisant directement les appels à mc.setBlock(). Mais dans nos parcelles de surface, telles que la bouteille de Klein, souvent le même bloc serait obtenir faite plusieurs fois, qui est lente et inefficace. Une meilleure façon est de garder une trace de l’ensemble des blocs exactes qui sont déjà dessinés pour éviter de refaire la même chose.

Permettez-moi de passer à travers un exemple comme ça ( knot.py) dessiner un noeud. Commencez avec un en-tête standard comme :

Il faut maintenant générer notre noeud. J’ai utilisé les formules potentille de ici. Pour cela, une boucle d’un paramètre t de 0 à 2 * pi, avec de petites assez des mesures pour s’assurer que nous n’avons pas les lacunes. J’ai utilisé 10000 étapes. Puisque cela en mémoire, les ordinateurs sont rapides et les blocs qui se chevauchent sont envoyés uniquement une fois à Minecraft, c’est plus facile plus facile de faire des étapes plus qu’afin que le nombre est suffisant. Il est important que les coordonnées qui vont dans le dictionnaire d’être entiers, donc nous pouvons dire que le même bloc est en dessin (un bloc au (1.1,1.2,1.4) et un bloc à (1,1,1) sont la même chose dans Minecraft).

Nous avons tout d’abord initialiser et définir la position du nœud par rapport au joueur. Notez que la position du joueur ne sont pas nécessairement un entier (vous ne pourriez pas être debout exactement aligné avec un bloc) et devrait être transformée en un entier.

Maintenant, nous faisons un ensemble vide nommé fait pour stocker les coordonnées que nous avons déjà attiré :

Et nous attirons le jeu :

Cela attire seulement les données qui n’est pas déjà dessinées. Notez que nous avons besoin d’arrondir des coordonnées avec la fonction int() x, y et z. C’est la magie derrière l’enlèvement de chevauchement : lorsque les coordonnées arrondies sont identiques, qu’un seul bloc est dessiné. (Note : la double parenthèse dans la ligne de done.add((x,y,z)) sont due au fait que ce que nous ajoutons au jeu est la coordonnée triple (x, y, z).)

Le code ci-dessus est knot.py.

Le noeud serait mieux si la corde était plus épaisse. Il y a bien des égards un peut le faire. Une façon inefficace, mais facile car les ordinateurs sont rapides ces jours-ci, est juste dessiner une petite boule au lieu d’un point à chaque pixel. Pour ce faire, tout d’abord, je fais une petite fonction utilitaire pour dessiner un ballon tandis que signant la fait mettre pour assurer il n’y a pas de blocs dupliqués :

Cet exemple utilise la méthode inequality pour remplir un ballon à (x0, y0, z0), de rayon r.

Ensuite il suffit de modifier notre boucle while de fabrication noeud pour faire une boule au lieu de juste un point :

Le résultat est knot2.py dans les exemples de scripts.

Autres noeuds de l’échantillon sont en trefoil.py, trefoil2.py et borromean.py. Si vous dessinez à l’aide de matériaux multiples, vous pouvez utiliser un dictionnaire à la place d’un ensemble, ou juste passer successivement par les différents matériaux et désactiver l’ensemble devant chacun (c’est ce que je fais dans trefoil2.py et borromean.py).

Articles Liés

Python codant pour Android Minecraft PE

Python codant pour Android Minecraft PE

La version de Raspberry PI de Minecraft permet vous script en Python, faire des dessins de fractale, dessins, graphiques de la tortue, jeux simples, etc.. La même chose peut être faite sur une version de bureau avec mon Mod de confiture de framboise
Real World Minecraft

Real World Minecraft

Nous avons tous savoir Minecraft est un jeu génial et Raspberry Pi rend plus impressionnant. Avec l'API de Minecraft nous pouvons maintenant écrire des scripts python simple interface lire les capteurs du monde et des boutons pour le monde de Minecra
Smart Garage alimenté par pcDuino

Smart Garage alimenté par pcDuino

vous combien de fois avez chassés de la maison et je me demandais si vous avez fermé votre garage ou pas ?Ici, nous présenterons un garage smart, propulsé par pcDuino. Le garage vous avertit par courrier si la porte du garage est ouverte. Si vous l'e
IRToWebThingy : Télécommande pour adaptateur WiFi IR avec ESP8266

IRToWebThingy : Télécommande pour adaptateur WiFi IR avec ESP8266

J'ai fait un IRToWebThingy qui lit les codes de la télécommande infrarouge de la commune (et certains pas si fréquent) et les rend disponibles pour tous les périphériques sur le réseau WiFi local donc vous pouvez scripts diverses choses. Par exemple,
Spidering un site Ajax avec un formulaire de connexion asynchrone

Spidering un site Ajax avec un formulaire de connexion asynchrone

le problème : Spidering outils ne permettent pas l'authentification AJAX login.Cette instructable va vous montrer comment se connecter à travers un formulaire AJAX en utilisant Python et un module appelé Mechanize.Les araignées sont des programmes d'
Indicateur de giration de vélos du couvercle de sac à dos

Indicateur de giration de vélos du couvercle de sac à dos

Ce projet a été créé au cours du CCA roue bien Design Sprint qui visait à rendre les cyclistes plus visibles pour les véhicules sur la route. J'ai utilisé un matériau que j'ai déjà eu ce qui était une housse de pluie sac à dos. Le post complet sur le
Raspberry Pi et un peu à ce sujet

Raspberry Pi et un peu à ce sujet

Dans ce instructable je vais vous expliquer ce qu'un pi framboise est et un peu à ce sujet. Aussi quels projets vous pouvez faire à ce sujet.Étape 1: Ce qui est un Pi de framboise ?Le Raspberry Pi est un coût bas, ordinateur qui se branche sur un écr
Cours camp d’été sur le codage de Python avec Minecraft

Cours camp d’été sur le codage de Python avec Minecraft

L'été dernier, j'ai enseigné un mini-cours camp été 1.5-heures par jour 5 jours sur programmation Python avec Minecraft pour enfants doués dans le cadre de l'Université de Baylor for Young People. La plupart des enfants étaient une partie du projet d
Star Wars et Star Trek dans Minecraft avec Raspberry Jam Mod

Star Wars et Star Trek dans Minecraft avec Raspberry Jam Mod

Je vais vous expliquer comment restituer a facilement Star Wars et Star Trek (et autres) de modèles 3D dans Minecraft et (b) voler un vaisseau spatial dans Minecraft (ou même une autre entité, comme une chauve-souris ou un zombie, il ont voler!), en
Création de mods serveur Minecraft Spigot

Création de mods serveur Minecraft Spigot

Serveurs de Minecraft sont impressionnantes. Ils vous permettent de construire des amis à travers le monde, parlent avec les gens et perdre son temps à tous le manchon de commandes tous les plugins qui sont disponibles à cette fin. Si vous souhaitez
Programmation Python : Partie 1 - bases

Programmation Python : Partie 1 - bases

Python est un langage de programmation généraliste, de haut niveau largement utilisé. Sa philosophie de conception met l'accent sur la lisibilité du code, et sa syntaxe permet aux programmeurs d'exprimer des concepts en moins de lignes de code que po
Modèle de Steve Minecraft ! w / poitrine Double Bonus !

Modèle de Steve Minecraft ! w / poitrine Double Bonus !

Mon petit frère est un grand fan de Minecraft et Noël est à venir, alors j'ai pensé au lieu d'acheter un Minecraft associé présent, pourquoi ne pas lui faire un cadeau de Minecraft ? Ma réponse a été de faire un modèle de Steve !Ce modèle est assez s
Arbre de 8 bits en carton - dans le style de MineCraft

Arbre de 8 bits en carton - dans le style de MineCraft

Arbres de MinecraftPlus tôt cette année deux passionnés de Minecraft merveilleusement créatives se sont mariés à la Game Developers Conference (GDC) et voulaient pleine tailles arbres de Minecraft-style de décoration. Je voulais partager avec vous to
Faire un toutou Wither de Minecraft

Faire un toutou Wither de Minecraft

est ce chanceux peu anniversaire garçon/Minecraft monstre tenant premier Wither toutou du monde ? Bien que très improbable, il est possible... Vous voulez savoir quoi d'autre est possible ? La possibilité de créer votre propre. Dans ce Instructable j