🧪 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 = Sprite('Tobi')
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

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()

👉 Tobi se mueve a la derecha o a la izquierda y cambia de disfraz para simular animación.

🧠 Paso 3: Movimiento vertical

if sprite.iskeypressed("up arrow"):
  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

if sprite.iskeypressed("a"):
  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

if sprite.iskeypressed("d"):
  sprite.changeeffect("color", 10)

👉 Cada vez que pulsas D, el color cambia.

🧠 Paso 6: Cambiar fondo

if sprite.iskeypressed("f"):
  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
import time

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.