🟡 Capítulo 7: Pulido profesional (hacer el juego divertido)
Tu juego ya funciona:
- Hay movimiento
- Hay enemigo
- Hay vidas
- Hay puntos
- Hay GAME OVER
Pero ahora viene lo importante:
👉 hacer que el juego se sienta bien.
🎮 ¿Qué es el “pulido”?
Es lo que hace que un juego pase de ser “correcto” a ser divertido.
- Respuestas rápidas
- Feedback visual
- Sensación de impacto
👉 Son pequeños detalles… pero muy importantes.
🧠 Idea clave
El jugador necesita saber SIEMPRE qué está pasando.
👉 si recibe daño → debe notarse
👉 si gana puntos → debe verse
💻 Mejora 1: Feedback al recibir daño
Ahora mismo solo pierde vida… pero casi no se nota.
Vamos a hacerlo visible:
tobi.say("¡OUCH!", 0.3)
time.sleep(0.2)
tobi.setsize(100)
👉 Efecto: parece que el personaje “recibe el golpe”.
💻 Mejora 2: Aviso de poca vida
Cuando el jugador está a punto de perder:
tobi.say("¡CUIDADO!", 0.5)
👉 Genera tensión en el juego.
💻 Mejora 3: Puntos más claros
Hacemos el marcador más visible:
👉 Más visual, más estilo videojuego.
💻 Mejora 4: Enemigo más “vivo”
Hacemos que el enemigo cambie de tamaño:
time.sleep(0.1)
enemy.setsize(100)
👉 Parece que “late” o está activo.
💻 Mejora 5: Mensaje final con puntuación
En el GAME OVER:
👉 Muy importante para el jugador.
🎮 Resultado final
- El daño se siente
- El jugador recibe avisos
- El juego tiene estilo visual
- La experiencia mejora muchísimo
👉 Esto es lo que hace que un juego sea divertido.
🚀 Reto Abutuber: Mejora tu juego
Añade a tu juego:
- Efecto visual al recibir daño
- Aviso cuando queda 1 vida
- Marcador más bonito
- Mensaje final con puntos
👉 Si no te sale, aquí tienes el código completo:
👀 Ver código completo
import time
tobi = Sprite("Tobi")
vidas = 3
puntos = 0
game_over = False
puede_recibir_dano = True
while not game_over:
if tobi.iskeypressed("w"):
tobi.move(10)
puntos = puntos + 1
tobi.say("⭐ " + str(puntos), 0.5)
if tobi.istouching("Enemy") and puede_recibir_dano:
vidas = vidas - 1
puede_recibir_dano = False
tobi.setsize(130)
tobi.say("¡OUCH!", 0.3)
time.sleep(0.2)
tobi.setsize(100)
time.sleep(1)
puede_recibir_dano = True
if vidas == 1:
tobi.say("¡CUIDADO!", 0.5)
if vidas <= 0:
game_over = True
tobi.say("GAME OVER - Puntos: " + str(puntos), 3)
time.sleep(0.2)
tobi.say("Pulsa R para reiniciar", 2)
while True:
if tobi.iskeypressed("r"):
break
# SPRITE ENEMY
import time
enemy = Sprite("Enemy")
tobi = Sprite("Tobi")
while True:
if enemy.x < tobi.x:
enemy.move(2)
if enemy.x > tobi.x:
enemy.move(-2)
enemy.setsize(110)
time.sleep(0.1)
enemy.setsize(100)
💡 Consejo Abutuber: Los juegos profesionales no son difíciles… son agradables de jugar.