🟡 Capítulo 5: Sistema de puntos real (con marcador en pantalla)

Ya tienes un juego donde:

  • El enemigo persigue
  • El jugador pierde vidas

Pero falta algo clave:

👉 ¿Para qué juega el jugador?

🎮 Objetivo del capítulo

Vamos a añadir:

  • Un sistema de puntos
  • Un marcador en pantalla
  • Recompensa por sobrevivir

👉 Esto convierte tu proyecto en un juego de verdad.

🧠 Idea clave

En videojuegos, los puntos suelen funcionar así:

  • Ganas puntos con el tiempo
  • O por acciones (moverse, sobrevivir, recoger objetos)

👉 Nosotros usaremos puntos por supervivencia.

💻 Paso 1: Crear los puntos

En el sprite Tobi:

puntos = 0

👉 Empezamos con 0 puntos.

💻 Paso 2: Sumar puntos con el tiempo

Añadimos esto dentro del while True:

puntos = puntos + 1

👉 Cuanto más sobrevives, más puntos tienes.

💻 Paso 3: Mostrar puntos en pantalla

Usamos say() para mostrar el marcador:

tobi.say("Puntos: " + str(puntos), 0.5)

👉 Convertimos el número a texto con str().

⚠️ Problema importante

Si lo haces así, pasará esto:

  • Los puntos suben demasiado rápido
  • El texto parpadea constantemente

👉 Necesitamos controlar la velocidad.

💡 Solución: controlar el tiempo

Añadimos una pequeña pausa:

import time

time.sleep(0.2)

👉 Ahora el marcador es más estable.

🎮 Resultado final

  • El jugador gana puntos al sobrevivir
  • Puede ver su puntuación
  • El juego tiene objetivo

👉 Ya no es solo sobrevivir… ahora compites.

⚡ Mejora PRO

Puedes hacer que los puntos suban más lento o más rápido:

  • sleep(0.5) → más lento
  • sleep(0.1) → más rápido

👉 Ajusta la dificultad del juego.

🚀 Reto Abutuber: Supervivencia con puntuación

Mejora tu juego:

  • Tobi gana puntos con el tiempo
  • Los puntos se muestran en pantalla
  • El enemigo sigue persiguiendo
  • El jugador pierde vidas

Extra: Intenta sobrevivir el mayor tiempo posible.

👉 Si no te sale, aquí tienes el código completo:

👀 Ver código completo
# SPRITE TOBI

import time

tobi = Sprite("Tobi")

vidas = 3
puntos = 0
puede_recibir_dano = True

while True:

  if tobi.iskeypressed("w"):
    tobi.move(10)

  puntos = puntos + 1

  tobi.say("Puntos: " + str(puntos), 0.5)

  if tobi.istouching("Enemy") and puede_recibir_dano:
    vidas = vidas - 1
    puede_recibir_dano = False
    tobi.say("¡Golpe!", 0.5)

    time.sleep(1)
    puede_recibir_dano = True

  time.sleep(0.2)

# SPRITE ENEMY

enemy = Sprite("Enemy")
tobi = Sprite("Tobi")

while True:

  if enemy.x < tobi.x:
    enemy.move(2)

  if enemy.x > tobi.x:
    enemy.move(-2)

💡 Consejo Abutuber: Un juego sin puntos no tiene objetivo. Un juego con puntos crea reto y motivación.