Python coding for Minecraft (13 / 17 paso)

Paso 13: Avanzada notas 3: nudos

Puede encontrar ecuación paramétrica para los nudos en la red. Esta vez, vamos a hacer las cosas un poco distintas que antes. Antes, hemos tenido lazos manejar llamadas a mc.setBlock() directamente. Pero en nuestras parcelas de superficie, como la botella de Klein, a menudo el mismo bloque Haz dibujado varias veces, que es lento e ineficiente. Una forma mejor es mantener el conjunto de bloques exactas que ya eran para evitar rehacer la misma cosa.

Déjame ir a través de un ejemplo como eso (en knot.py) a un nudo. Comenzar con una cabecera estándar como:

Ahora tenemos que generar nuestro nudo. He utilizado las fórmulas de Potentilla de aquí. Esto requiere colocación de un parámetro t de 0 a 2 * pi, con pequeño suficientes medidas para asegurar no tiene lagunas. He usado 10000 pasos. Puesto que esto se hace en la memoria, las computadoras son rápidas y superposición de bloques sólo se envían una vez a Minecraft, es más fácil más fácil hacer más pasos que to que la cantidad es suficiente. Es importante que las coordenadas que van en el diccionario para ser enteros, por lo que podemos decir que el mismo bloque es ser dibujo (un bloque en (1.1,1.2,1.4) y una a (1,1,1) son la misma cosa en Minecraft).

Primero inicializar y establecer la posición del nudo en relación con el jugador. Observe que la posición de jugador no necesita ser un número entero (que podría no estar exactamente alineado con un bloque) y debe convertirse en un entero.

Ahora hacemos un conjunto vacío hecho para almacenar las coordenadas que ya hemos dibujado el nombre:

Y sacar el conjunto:

Esto sólo dibuja los datos que ya no está. Tenga en cuenta que tenemos que redondear la x, y, z coordenadas con la función int(). Que es la magia detrás de la eliminación de superposición: cuando las coordenadas redondeadas son iguales, a una cuadra se dibuja. (Nota: el paréntesis doble en la línea de done.add((x,y,z)) es debido a que estamos agregando al conjunto es la coordenada triple (x, y, z).)

El código anterior es en knot.py.

El nudo se vería mejor si la cuerda fuese más gruesa. Hay muchas maneras que uno puede hacer eso. Manera ineficiente, pero es fácil ya que los equipos son rápidos estos días, es dibujar una bola pequeña en vez de un punto en cada píxel. Para ello, primero hacer una pequeña función de utilidad para dibujar una bola mientras que comprobar en el hecho al asegurar no hay bloques duplicados:

Esto utiliza el método de desigualdad para llenar en una bola en la (x0, y0, z0), de radio r.

Entonces sólo modificar nuestro lazo nudo hacer mientras para hacer una bola en vez de sólo un punto:

El resultado es de knot2.py en los scripts de muestra.

Otros nudos de la muestra están en trefoil.py, trefoil2.py y borromean.py. Si se dibuja con múltiples materiales, puede utilizar un diccionario en lugar de un conjunto, o sólo pasar secuencialmente por los diferentes materiales y claro el juego antes de cada uno (que es lo que hago en trefoil2.py y borromean.py).

Artículos Relacionados

Codificación del Python para Android Minecraft PE

Codificación del Python para Android Minecraft PE

La versión de Minecraft de frambuesa PI permite script en Python, haciendo diseños fractales, dibujos, gráficos de tortuga, juegos simples, etc.. Lo mismo se puede hacer en una versión de escritorio con mi Mod de mermelada de frambuesa (aquí está mi
Minecraft mundo real

Minecraft mundo real

Todo saber Minecraft es un juego impresionante y Raspberry Pi ha hecho más impresionante. Con la API de Minecraft ahora podemos escribir secuencias de comandos de python simple interfaz leer mundo sensores y botones para el mundo de Minecraft.Paso 1:
Radio por Internet con frasco frambuesa Pi

Radio por Internet con frasco frambuesa Pi

El propósito de este tutorial es mostrar cómo construir una radio que puede transmitir audio desde internet utilizando una interfaz web sencilla para operarla. Necesitamos lo siguiente:Frambuesa PiAlgunos oradores puede conectar a su frambuesa PiMatr
Automatizado de invernadero

Automatizado de invernadero

Decidimos diseñar un invernadero como tema para nuestro proyecto de electrónica. El objetivo era regular la temperatura dentro del invernadero gracias a una lámpara, un servomotor para abrir una ventana y un ventilador de PC. Hemos querido mantener u
Indicador de vuelta de la bicicleta de la cubierta de la mochila

Indicador de vuelta de la bicicleta de la cubierta de la mochila

Este proyecto fue creado durante el Sprint diseño CCA rueda bien encaminado a hacer ciclistas más accesibles a los vehículos en la carretera. Utilicé un material que ya tenía que era un protector de lluvia mochila. El post completo en el proyecto se
Frambuesa Pi y un poco sobre él

Frambuesa Pi y un poco sobre él

En este instructable voy a explicar qué una frambuesa pi es y un poco sobre él. Qué proyectos le pueden hacer también en él.Paso 1: ¿Qué es un Pi de frambuesa?El Raspberry Pi es un bajo costo, tarjeta de crédito tamaño de equipo que se conecta a un T
Cómo descargar e instalar Mods en Minecraft (for Dummies)

Cómo descargar e instalar Mods en Minecraft (for Dummies)

Esta es una manera super fácil descargar e instalar mods para Minecraft PCPaso 1: Fragua descargarVer "fragua de la descarga" en la búsqueda de google y haga clic en el primer linkHabrá una pantalla con un montón de enlaces diciendo que la versi
Espita de Minecraft Server creación Mod

Espita de Minecraft Server creación Mod

Servidores de Minecraft son impresionantes. Permiten crear a amigos en todo el mundo, hablar con la gente y ensuciar con todas la espita de comandos y todos los plugins que están disponibles para él. Si le gustaría ayudar a expandir los plugins dispo
Star Wars y Star Trek en Minecraft con frambuesa mermelada Mod

Star Wars y Star Trek en Minecraft con frambuesa mermelada Mod

Voy a explicar cómo hacer (a) fácilmente Star Wars y Star Trek (y otros) 3D modelos en Minecraft y (b) volar una nave espacial en Minecraft (¡ o incluso con otra entidad, como un murciélago o un zombi, volar!), usando los scripts de python muestra in
¿Hacer un peluche de Wither de Minecraft

¿Hacer un peluche de Wither de Minecraft

es este suerte poco cumpleaños niño/Minecraft freak sosteniendo primer Wither peluche el mundo? Aunque altamente improbable, es posible... ¿Quieres saber qué es posible? La habilidad de crear uno de su propio. En este Instructable te arte ayudará a m
Programación Python: Parte 1 - conceptos básicos

Programación Python: Parte 1 - conceptos básicos

Python es un lenguaje de programación ampliamente utilizado de uso general, alto nivel. Su filosofía de diseño enfatiza la legibilidad del código, y su sintaxis permite a los programadores expresar conceptos en pocas líneas de código que sería posibl
Python programación P:3

Python programación P:3

Hola y,Bienvenido a,Python,Programación,P:3!Por lo tanto,Vamos a obtener,Directamente a él.Paso 1: entrada The command for,Una entrada es,"___ = input("___")".Hoy en día,El comando,Se va a utilizar,Es,"ans = input (" Introduz
Movimiento Controled Minecraft usando MPU 6050 y frambuesa Pi

Movimiento Controled Minecraft usando MPU 6050 y frambuesa Pi

En este Instructable, yo a demostrar cómo controlar el Minecraft en la Raspberry Pi utilizando un controlador de movimiento MPU 6050. Vamos a usar la API de python-minecraft presente por defecto en el OS Raspbian.Paso 1: Mira este video para tener un
Huevos de Pascua gigante en Minecraft

Huevos de Pascua gigante en Minecraft

Mañana de Pascua decidí generar unos huevos gigantes de Pascua en Minecraft con un script de python. Usé mi Mod de mermelada de frambuesa que permite la API de Minecraft de frambuesa PI en escritorio de Minecraft. (También puede usar el script en un