Saltearse al contenido

Crear un sistema de puntuación simple

💡 ¿Tienes problemas con el ensamblaje de bloques de Scratch? ¿No sabes cómo implementar la lógica del código? 🚀 Obtener Ayuda Ahora

GM

GameMaker456

Posted on January 20, 2024 • Intermediate

🎮 Necesito ayuda con el sistema de puntuación

¡Hola a todos! Estoy trabajando en mi primer juego en Scratch donde el jugador recoge monedas y derrota enemigos. Quiero añadir un sistema de puntuación que:

  • Aumente la puntuación al recoger monedas
  • Dé puntos por derrotar enemigos
  • Muestre la puntuación en pantalla

Soy bastante nuevo con las variables y las mecánicas de juego. ¡Cualquier ayuda sería muy apreciada! 🙏

SC

ScratchCoder_Pro

Replied 2 hours later • ⭐ Best Answer

¡Excelente pregunta @GameMaker456! Los sistemas de puntuación son súper divertidos de implementar. Aquí tienes una guía paso a paso que te ayudará:

🔧 Paso 1: Crear la Variable de Puntuación

Primero, crea una variable llamada Score y asegúrate de que esté configurada como “Para todos los objetos” para que sea accesible en todas partes.

    when flag clicked
set [Score v] to [0]
  

💰 Paso 2: Sistema de Recolección de Monedas

Para tus objetos de monedas, añade este código:

    when flag clicked
forever
if <touching [Player v]?> then
change [Score v] by [10]
play sound [coin collect v]
hide
stop [this script v]
end
end
  

⚔️ Paso 3: Sistema de Derrota de Enemigos

Para los objetos enemigos cuando son derrotados:

    // When enemy is defeated (example: when touched by player's attack)
when I receive [enemy defeated v]
change [Score v] by [50]
play sound [enemy defeat v]
hide
  

📺 Paso 4: Mostrar la Puntuación

Crea un objeto de texto o usa la pantalla de variable incorporada:

Opción A: Pantalla de Variable Incorporada

  • Haz clic derecho en la variable Score en la paleta de Variables
  • Selecciona “mostrar” para mostrarla en el escenario
  • Puedes arrastrarla para posicionarla donde quieras

Opción B: Pantalla de Puntuación Personalizada
Crea un objeto de texto con este código:

    when flag clicked
forever
set [text v] to (join [Score: ] (Score))
go to x: [-200] y: [150]
end
  

🚀 Paso 5: Características Avanzadas (Opcional)

Si quieres hacerlo más elegante, aquí tienes algunas adiciones geniales:

Sistema de Combos:

    // Añadir multiplicador de combo
when flag clicked
set [Combo v] to [1]
set [Combo Timer v] to [0]

forever
if <(Combo Timer) > [0]> then
change [Combo Timer v] by [-1]
else
set [Combo v] to [1]
end
end

// When collecting items
when I receive [item collected v]
change [Score v] by ((base points) * (Combo))
change [Combo v] by [1]
set [Combo Timer v] to [180] // 3 seconds at 60 FPS
  

Sistema de Puntuación Máxima:

    when flag clicked
if <(Score) > (High Score)> then
set [High Score v] to (Score)
broadcast [new high score v]
end
  

¡Espero que esto ayude! ¡Déjame saber si necesitas aclaración en alguna parte! 😊

GM

GameMaker456

Replied 30 minutes later

@ScratchCoder_Pro ¡Esto es increíble! ¡Muchas gracias! 🎉

Logré que el sistema básico de puntuación funcione perfectamente. Una pregunta rápida: ¿cómo puedo hacer que la visualización de la puntuación se vea mejor? Ahora solo muestra el número sin formato.

UI

UIDesigner_Sarah

Replied 1 hour later

@GameMaker456 ¡Excelente pregunta! Aquí te muestro cómo formatear números grandes de manera elegante:

    // Custom block: format score
define format score (number)
if <(number) > [999999]> then
set [formatted score v] to (join (round ((number) / [1000000])) [M])
else
if <(number) > [999]> then
set [formatted score v] to (join (round ((number) / [1000])) [K])
else
set [formatted score v] to (number)
end
end
  

Esto mostrará “1.2K” en lugar de “1200” y “2.5M” en lugar de “2500000”. ¡Mucho más limpio! ✨

GT

GameTutor_Mike

Replied 2 hours later

¡Me encanta ver a principiantes abordar mecánicas de juego! 🎮 Aquí tienes algunos consejos profesionales para hacer tu sistema de puntuación aún mejor:

  • Diferentes valores de puntos: Asigna diferentes valores de puntos a diferentes objetos según la dificultad para recolectarlos
  • Puntuación de bonificación: Añade bonificaciones de tiempo o bonificaciones por completar perfectamente
  • Retroalimentación de puntuación: Muestra texto flotante cuando se ganen puntos
  • Guardar puntuaciones altas: Usa variables en la nube para guardar puntuaciones altas en línea

¡Sigue experimentando y diviértete con ello!

VB

Vibelf_Community

Pinned Message • Moderator

🚀 ¿Quieres llevar tu desarrollo de juegos al siguiente nivel?

¡Excelente discusión todos! Para aquellos que buscan crear sistemas de puntuación aún más avanzados, nuestra comunidad puede ayudarte a implementar:

  • 🏆 Tablas de clasificación
  • 🎖️ Sistemas de logros
  • 🧮 Algoritmos de puntuación complejos
  • 🔓 Desbloqueables basados en puntuación

📚 Discusiones Relacionadas

¿Listo para llevar tus habilidades de desarrollo de juegos al siguiente nivel? ¡Obtén orientación personalizada de nuestros tutores expertos en la aplicación Vibelf!