Si desea más información sobre la Asociación GeekGamersTeam y sus actividades puede visitar:
Código fuente del programa que crea el logotipo de la asociación GeekGamersTeam en Minecraft al pulsar un botón conectado a una Raspberry Pi:
################################################
# PROGRAMA LOGOTIPO GEEKGAMERSTEAM: Crea el #
# logotipo de la asociación cuando se pulsa #
# el botón que hay concectado en una Raspberry #
################################################
# Importar API - Librerías Minecraft
import mcpi.minecraft as minecraft
import mcpi.block as block
# Importar librerias Python
import string
import time
# Importar librerías Raspberry Pi
import RPi.GPIO as GPIO
# Configurar Raspberry Pi
BUTTON = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON, GPIO.IN)
ON = False
# Constantes colores de la lana
BLANCO = 0
MARRON = 12
NARANJA = 1
# Radio del circulo del Logo
RADIO = 31
# Creamos una conexión a Minecraft
mc = minecraft.Minecraft.create()
# Obtener posición de mi jugador
pos = mc.player.getTilePos()
#########################################
# PROCEDIMIENTO: Dibujar Circunferencia #
#########################################
def dibujarCircunferencia(radio, posicion):
mc.setBlocks(posicion.x + 2, posicion.y, posicion.z, (posicion.x + (radio * 2)), (posicion.y + 200), (posicion.z + (radio * 2)), block.AIR.id)
mc.setBlocks(posicion.x + 2, posicion.y, posicion.z, (posicion.x + (radio * 2)), posicion.y, (posicion.z + (radio * 2)), block.WOOL.id, 12)
###################################
# PROCEDIMIENTO: Dibujar Carácter #
###################################
def dibujarCaracter(posicion, caracter, colorLetra, colorFondo):
letra = []
if caracter == "G" or caracter == "g":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,0,0,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "E" or caracter == "e":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,1,1,0,0,0],
[0,1,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "K" or caracter == "k":
letra = [[0,0,0,0,0,0,0],
[0,1,0,0,1,0,0],
[0,1,0,1,0,0,0],
[0,1,1,0,0,0,0],
[0,1,0,1,0,0,0],
[0,1,0,0,1,0,0],
[0,0,0,0,0,0,0]]
elif caracter == "A" or caracter == "a":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "M" or caracter == "m":
letra = [[0,0,0,0,0,0,0],
[0,1,0,0,0,1,0],
[0,1,1,0,1,1,0],
[0,1,0,1,0,1,0],
[0,1,0,0,0,1,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "S" or caracter == "s":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,0,0]]
elif caracter == "T" or caracter == "t":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0],
[0,0,0,0,0,0,0]]
elif caracter == "R" or caracter == "r":
letra = [[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,1,0,0,0,1,0],
[0,1,1,1,1,1,0],
[0,1,0,0,1,0,0],
[0,1,0,0,0,1,0],
[0,0,0,0,0,0,0]]
else:
letra = [[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0]]
# Dependiendo de si la letra es mayúsculas o es minusculas
# la hará el doble de grande o no
if string.find(string.ascii_uppercase, caracter) == -1:
# Si la letra es minúscula
x = 0
z = 0
for x in range (len(letra)):
for z in range (len(letra[x])):
if letra[x][z] == 0:
mc.setBlock(posicion.x - x, posicion.y, posicion.z + z, block.WOOL.id, colorFondo)
elif letra[x][z] == 1:
mc.setBlock(posicion.x - x, posicion.y, posicion.z + z, block.WOOL.id, colorLetra)
else:
# Si la letra es mayúscula
i = 0
h = 0
x = 0
z = 0
for i in range (len(letra)):
for h in range (len(letra[i])):
x = i * 2
z = h * 2
if letra[i][h] == 0:
mc.setBlocks(posicion.x - x, posicion.y, posicion.z + z, posicion.x - x - 1, posicion.y, posicion.z + z + 1, block.WOOL.id, colorFondo)
elif letra[i][h] == 1:
mc.setBlocks(posicion.x - x, posicion.y, posicion.z + z, posicion.x - x - 1, posicion.y, posicion.z + z + 1, block.WOOL.id, colorLetra)
##################################
# PROCEDIMIENTO: Dibujar Palabra #
##################################
def dibujarPalabra(posicion, palabra, colorLetra, colorFondo):
posicionCaracter = posicion
for x in range(len(palabra)):
dibujarCaracter(posicionCaracter, palabra[x], colorLetra, colorFondo)
posicionCaracter.z = posicionCaracter.z + 7 + 1
############################################################
try:
while True:
time.sleep(0.1)
if GPIO.input(BUTTON) == False:
# Dibuja la circunferencia
dibujarCircunferencia(RADIO, pos)
# Dibuja la palabra G
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 1
posicionLetra.z = pos.z + RADIO - 21
dibujarPalabra(posicionLetra, "G", BLANCO, NARANJA)
# Dibuja la palabra t
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 10
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "t", BLANCO, MARRON)
# Dibuja la palabra e
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 2
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "e", BLANCO, MARRON)
# Dibuja la palabra ek
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO + 2
posicionLetra.z = pos.z + RADIO - 5 + 8
dibujarPalabra(posicionLetra, "ek", NARANJA, MARRON)
# Dibuja la palabra a
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 6
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "a", BLANCO, MARRON)
# Dibuja la palabra mers
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 6
posicionLetra.z = pos.z + RADIO - 5 + 8
dibujarPalabra(posicionLetra, "mers", NARANJA, MARRON)
# Dibuja la palabra m
posicionLetra = mc.player.getTilePos()
posicionLetra.x = pos.x + RADIO - 14
posicionLetra.z = pos.z + RADIO - 5
dibujarPalabra(posicionLetra, "m", BLANCO, MARRON)
finally:
GPIO.cleanup()