🧪 Práctica 1: Control completo de Tobi en Python
Ya que has realizado el curso de correspondencia de bloques a instrucciones de Python, comienzas con esta primera práctica para que puedas poco a poco adquirir los conocimientos necesarios para programar en Python para PictoBlox.
👉 En esta práctica vas a construir un sistema completo paso a paso, igual que en un videojuego real.
🎯 Objetivo de la práctica
Al finalizar serás capaz de:
- Mover a Tobi con el teclado
- Cambiar su tamaño
- Cambiar su color
- Cambiar el fondo del escenario
- Controlar animaciones básicas
🧠 Paso 1: Configuración inicial
Primero creamos el sprite y lo configuramos:
sprite.setrotationstyle("left-right")
sprite.setsize(100)
sprite.seteffect("color", 0)
sprite.switchbackdrop("Wall 1")
velocidad = 10
👉 Aquí estamos preparando el personaje y el escenario.
🧠 Paso 2: Movimiento con flechas
sprite.setdirection(90)
sprite.move(velocidad)
sprite.nextcostume()
if sprite.iskeypressed("left arrow"):
sprite.setdirection(-90)
sprite.move(velocidad)
sprite.nextcostume()
👉 Tobi se mueve a la derecha o a la izquierda y cambia de disfraz para simular animación.
🧠 Paso 3: Movimiento vertical
sprite.sety(sprite.y() + velocidad)
if sprite.iskeypressed("down arrow"):
sprite.sety(sprite.y() - velocidad)
👉 Aquí controlamos el movimiento arriba y abajo.
🧠 Paso 4: Cambiar tamaño
sprite.setsize(sprite.size() + 5)
if sprite.iskeypressed("s"):
if sprite.size() > 10:
sprite.setsize(sprite.size() - 5)
👉 Con A y S controlamos el tamaño de Tobi.
🧠 Paso 5: Cambiar color
sprite.changeeffect("color", 10)
👉 Cada vez que pulsas D, el color cambia.
🧠 Paso 6: Cambiar fondo
sprite.nextbackdrop()
👉 Cambias el fondo del escenario.
🚀 Reto Abutuber: Sistema completo
Intenta crear el programa completo sin mirar el código.
Si no lo consigues, puedes ver la solución completa.
🔓 Mostrar código completo
sprite = Sprite('Tobi')
sprite.setrotationstyle("left-right")
sprite.setsize(100)
sprite.seteffect("color", 0)
sprite.switchbackdrop("Wall 1")
velocidad = 10
while True:
if sprite.iskeypressed("right arrow"):
sprite.setdirection(90)
sprite.move(velocidad)
sprite.nextcostume()
if sprite.iskeypressed("left arrow"):
sprite.setdirection(-90)
sprite.move(velocidad)
sprite.nextcostume()
if sprite.iskeypressed("up arrow"):
sprite.sety(sprite.y() + velocidad)
if sprite.iskeypressed("down arrow"):
sprite.sety(sprite.y() - velocidad)
if sprite.iskeypressed("a"):
sprite.setsize(sprite.size() + 5)
if sprite.iskeypressed("s"):
if sprite.size() > 10:
sprite.setsize(sprite.size() - 5)
if sprite.iskeypressed("d"):
sprite.changeeffect("color", 10)
if sprite.iskeypressed("f"):
sprite.nextbackdrop()
time.sleep(0.03)
💡 Consejo Abutuber: No intentes memorizar el código. Intenta entender qué hace cada parte.