Saltearse al contenido

Referencia Completa de Bloques de Scratch 3.0

Referencia Completa de Bloques de Scratch 3.0 🧩

Sección titulada «Referencia Completa de Bloques de Scratch 3.0 🧩»

Esta guía de referencia completa cubre todos los bloques disponibles en Scratch 3.0, organizados por categorías para facilitar su búsqueda y comprensión. Cada bloque incluye su propósito, sintaxis y ejemplos prácticos de uso.

  • Bloques de Sombrero 🎩: Inician scripts (eventos)
  • Bloques de Pila 📚: Ejecutan acciones (comandos)
  • Bloques Reporteros 🔄: Devuelven valores (ovalados)
  • Bloques Booleanos ✅: Devuelven verdadero/falso (hexagonales)
  • Bloques C 🔄: Contienen otros bloques (estructuras de control)

🔵 Movimiento

Controla la posición y orientación de los sprites

🟣 Apariencia

Cambia la apariencia visual de sprites y escenario

🟢 Sonido

Reproduce y controla efectos de sonido y música

🟡 Eventos

Detecta y responde a eventos del usuario y del programa

🟠 Control

Controla el flujo del programa con bucles y condiciones

🔵 Sensores

Detecta condiciones y obtiene información del entorno

🟢 Operadores

Realiza cálculos matemáticos y operaciones lógicas

🟠 Variables

Almacena y manipula datos

mover (10) pasos

  • Propósito: Mueve el sprite hacia adelante en la dirección que está apuntando
  • Parámetros: Número de pasos (puede ser negativo para retroceder)
  • Ejemplo de uso: Movimiento de personajes, animaciones de caminar
// Hacer que un personaje camine
al presionar tecla [flecha derecha]
apuntar en dirección (90)
mover (5) pasos

girar ↻ (15) grados

  • Propósito: Rota el sprite en sentido horario
  • Parámetros: Grados de rotación (360° = vuelta completa)
  • Ejemplo de uso: Rotación de objetos, cambios de dirección

girar ↺ (15) grados

  • Propósito: Rota el sprite en sentido antihorario
  • Parámetros: Grados de rotación
  • Ejemplo de uso: Rotación inversa, efectos de giro
// Hacer que un objeto gire continuamente
por siempre
girar ↻ (5) grados
esperar (0.1) segundos
fin

ir a x: (0) y: (0)

  • Propósito: Mueve el sprite a coordenadas específicas
  • Parámetros: Posición X (-240 a 240), Posición Y (-180 a 180)
  • Ejemplo de uso: Teletransporte, posicionamiento inicial
// Teletransportar a esquinas de la pantalla
al presionar tecla [1]
ir a x: (-200) y: (150) // Esquina superior izquierda
al presionar tecla [2]
ir a x: (200) y: (150) // Esquina superior derecha

ir a (puntero del ratón)

  • Propósito: Mueve el sprite a la posición del cursor o de otro sprite
  • Opciones: puntero del ratón, posición aleatoria, otro sprite
  • Ejemplo de uso: Seguimiento del cursor, interacción con ratón

deslizar en (1) segundos a x: (0) y: (0)

  • Propósito: Mueve suavemente el sprite a una posición en tiempo determinado
  • Parámetros: Duración, coordenadas de destino
  • Ejemplo de uso: Animaciones suaves, transiciones
// Animación de entrada suave
al presionar ⚑
ir a x: (-300) y: (0) // Fuera de pantalla
deslizar en (2) segundos a x: (0) y: (0) // Entrar suavemente

apuntar en dirección (90)

  • Propósito: Establece la dirección del sprite
  • Valores: 0°=arriba, 90°=derecha, 180°=abajo, 270°=izquierda
  • Ejemplo de uso: Control de dirección, orientación inicial

apuntar hacia (puntero del ratón)

  • Propósito: Orienta el sprite hacia el cursor u otro objeto
  • Opciones: puntero del ratón, otro sprite
  • Ejemplo de uso: Seguimiento, apuntado automático
// Torreta que sigue al ratón
por siempre
apuntar hacia (puntero del ratón)
fin

cambiar x por (10)

  • Propósito: Modifica la posición horizontal del sprite
  • Parámetros: Cambio en X (positivo=derecha, negativo=izquierda)
  • Ejemplo de uso: Movimiento horizontal, desplazamiento

cambiar y por (10)

  • Propósito: Modifica la posición vertical del sprite
  • Parámetros: Cambio en Y (positivo=arriba, negativo=abajo)
  • Ejemplo de uso: Movimiento vertical, saltos
// Control de movimiento con teclas
al presionar tecla [flecha arriba]
cambiar y por (10)
al presionar tecla [flecha abajo]
cambiar y por (-10)
al presionar tecla [flecha derecha]
cambiar x por (10)
al presionar tecla [flecha izquierda]
cambiar x por (-10)

(posición x) y (posición y)

  • Propósito: Devuelven las coordenadas actuales del sprite
  • Tipo: Reportero numérico
  • Ejemplo de uso: Detección de límites, cálculos de distancia

(dirección)

  • Propósito: Devuelve la dirección actual del sprite en grados
  • Tipo: Reportero numérico
  • Ejemplo de uso: Cálculos de movimiento, lógica direccional
// Rebotar en los bordes manualmente
si <(posición x) > [230]> entonces
fijar x a (230)
apuntar en dirección ((180) - (dirección))
fin

fijar estilo de rotación [todo alrededor]

  • Opciones:
    • “todo alrededor”: Rotación libre 360°
    • “izquierda-derecha”: Solo voltea horizontalmente
    • “no rotar”: Sin rotación visual
  • Ejemplo de uso: Control de cómo se ve la rotación del sprite

rebotar si toca un borde

  • Propósito: Hace que el sprite rebote automáticamente en los bordes
  • Ejemplo de uso: Pelotas que rebotan, objetos que no salen de pantalla
// Pelota que rebota
al presionar ⚑
apuntar en dirección (número al azar entre (1) y (360))
por siempre
mover (5) pasos
rebotar si toca un borde
fin

mostrar y esconder

  • Propósito: Controla si el sprite es visible o no
  • Ejemplo de uso: Efectos de aparición, ocultar objetos temporalmente
// Efecto de parpadeo
repetir (5) veces
esconder
esperar (0.2) segundos
mostrar
esperar (0.2) segundos
fin

cambiar a disfraz [disfraz1]

  • Propósito: Cambia la apariencia del sprite
  • Parámetros: Nombre o número del disfraz
  • Ejemplo de uso: Animaciones, cambios de estado

siguiente disfraz

  • Propósito: Cambia al siguiente disfraz en la lista
  • Ejemplo de uso: Animaciones cíclicas, secuencias automáticas
// Animación de caminar
por siempre
si <tecla [flecha derecha] presionada?> entonces
siguiente disfraz
esperar (0.1) segundos
mover (3) pasos
fin
fin

cambiar fondo a [fondo1]

  • Propósito: Cambia el fondo del escenario
  • Parámetros: Nombre o número del fondo
  • Ejemplo de uso: Cambios de escena, progresión de niveles

fijar efecto [color] a (25)

  • Efectos disponibles:
    • color: Cambia el matiz (0-200)
    • ojo de pez: Distorsión convexa/cóncava
    • remolino: Efecto de torsión
    • pixelar: Efecto de pixelado
    • mosaico: Efecto de mosaico
    • brillo: Luminosidad (-100 a 100)
    • fantasma: Transparencia (0-100)
// Efecto de daño (parpadeo rojo)
al recibir [daño]
fijar efecto [color] a (0) // Rojo
fijar efecto [brillo] a (50)
esperar (0.2) segundos
quitar efectos gráficos

cambiar efecto [color] por (25)

  • Propósito: Modifica gradualmente un efecto visual
  • Ejemplo de uso: Transiciones suaves, efectos progresivos

quitar efectos gráficos

  • Propósito: Elimina todos los efectos visuales aplicados
  • Ejemplo de uso: Resetear apariencia, limpiar efectos

fijar tamaño a (100) %

  • Propósito: Establece el tamaño del sprite como porcentaje del original
  • Parámetros: Porcentaje (100% = tamaño original)
  • Ejemplo de uso: Escalado de objetos, efectos de crecimiento

cambiar tamaño por (10)

  • Propósito: Modifica el tamaño actual del sprite
  • Ejemplo de uso: Animaciones de crecimiento, efectos de zoom
// Efecto de respiración
por siempre
repetir (20) veces
cambiar tamaño por (1)
esperar (0.05) segundos
fin
repetir (20) veces
cambiar tamaño por (-1)
esperar (0.05) segundos
fin
fin

ir al frente y ir atrás (1) capas

  • Propósito: Controla qué sprites aparecen delante de otros
  • Ejemplo de uso: Organizar elementos de UI, efectos de profundidad
// Asegurar que el jugador esté siempre visible
al presionar ⚑
ir al frente

decir [¡Hola!] por (2) segundos

  • Propósito: Muestra un globo de diálogo temporal
  • Parámetros: Texto a mostrar, duración en segundos
  • Ejemplo de uso: Diálogos, mensajes informativos

decir [¡Hola!]

  • Propósito: Muestra un globo de diálogo permanente
  • Ejemplo de uso: Estados persistentes, información continua

pensar [Hmm…] por (2) segundos

  • Propósito: Muestra un globo de pensamiento temporal
  • Ejemplo de uso: Pensamientos de personajes, reflexiones
// Sistema de diálogo simple
al hacer clic en este objeto
decir [¡Hola! ¿Cómo estás?] por (3) segundos
esperar (3) segundos
decir [¡Me alegra verte!] por (2) segundos

(número de disfraz) y (nombre de disfraz)

  • Propósito: Devuelven información sobre el disfraz actual
  • Ejemplo de uso: Lógica basada en apariencia, animaciones complejas

(tamaño)

  • Propósito: Devuelve el tamaño actual del sprite en porcentaje
  • Ejemplo de uso: Cálculos de escala, lógica de tamaño
// Cambiar comportamiento según el disfraz
si <(nombre de disfraz) = [corriendo]> entonces
mover (8) pasos
si no
mover (3) pasos
fin

tocar sonido [Miau] hasta que termine

  • Propósito: Reproduce un sonido completamente antes de continuar
  • Ejemplo de uso: Diálogos, efectos importantes que no deben interrumpirse

empezar sonido [Miau]

  • Propósito: Inicia la reproducción de un sonido sin esperar
  • Ejemplo de uso: Efectos de fondo, sonidos superpuestos
// Efectos de sonido en un juego
al presionar tecla [espacio]
empezar sonido [disparo]
al recibir [colisión]
tocar sonido [explosión] hasta que termine

parar todos los sonidos

  • Propósito: Detiene inmediatamente todos los sonidos en reproducción
  • Ejemplo de uso: Pausar juego, cambios de escena

fijar efecto [tono] a (0)

  • Efectos de sonido disponibles:
    • tono: Cambia la altura del sonido (-360 a 360)
    • panorámica: Balance izquierda/derecha (-100 a 100)
  • Ejemplo de uso: Efectos dinámicos, espacialización de audio

cambiar efecto [tono] por (10)

  • Propósito: Modifica gradualmente un efecto de sonido
  • Ejemplo de uso: Transiciones de audio, efectos progresivos
// Efecto de sirena
repetir (10) veces
empezar sonido [tono]
cambiar efecto [tono] por (50)
esperar (0.2) segundos
fin
fijar efecto [tono] a (0)

quitar efectos de sonido

  • Propósito: Resetea todos los efectos de sonido a sus valores por defecto
  • Ejemplo de uso: Limpiar efectos, volver al sonido original

fijar volumen a (100) %

  • Propósito: Establece el volumen general de todos los sonidos
  • Parámetros: Porcentaje (0% = silencio, 100% = volumen máximo)
  • Ejemplo de uso: Configuración de audio, efectos de fade

cambiar volumen por (-10)

  • Propósito: Modifica el volumen actual
  • Ejemplo de uso: Fade in/out, ajustes dinámicos
// Fade out al final del juego
repetir (20) veces
cambiar volumen por (-5)
esperar (0.1) segundos
fin

(volumen)

  • Propósito: Devuelve el nivel de volumen actual
  • Ejemplo de uso: Lógica basada en volumen, interfaces de audio

al presionar ⚑

  • Propósito: Inicia el script cuando se hace clic en la bandera verde
  • Ejemplo de uso: Inicialización del juego, configuración inicial
// Configuración inicial del juego
al presionar ⚑
ir a x: (0) y: (0)
fijar tamaño a (100) %
quitar efectos gráficos
fijar [Puntos] a (0)
mostrar

al hacer clic en este objeto

  • Propósito: Ejecuta el script cuando se hace clic en el sprite
  • Ejemplo de uso: Botones, objetos interactivos

al presionar tecla [espacio]

  • Propósito: Responde a la presión de una tecla específica
  • Teclas disponibles: Letras, números, flechas, espacio, enter
  • Ejemplo de uso: Controles de juego, atajos de teclado
// Controles de un juego de plataformas
al presionar tecla [flecha arriba]
si <tocando color [#00FF00]?> entonces // Verde = suelo
cambiar y por (50) // Saltar
fin
al presionar tecla [espacio]
crear clon de [Proyectil]

al cambiar el fondo a [fondo1]

  • Propósito: Se ejecuta cuando el fondo cambia a uno específico
  • Ejemplo de uso: Transiciones de nivel, cambios de escena

al cambiar [volumen] a más de (10)

  • Propósito: Detecta cuando una variable o sensor supera un valor
  • Sensores disponibles: volumen, temporizador, posición del ratón
  • Ejemplo de uso: Activación por sonido, detección de movimiento

al recibir [mensaje1]

  • Propósito: Ejecuta el script cuando se recibe un mensaje específico
  • Ejemplo de uso: Comunicación entre sprites, eventos del juego

enviar [mensaje1]

  • Propósito: Envía un mensaje a todos los sprites
  • Ejemplo de uso: Activar eventos, sincronizar acciones

enviar [mensaje1] y esperar

  • Propósito: Envía un mensaje y espera a que todos los receptores terminen
  • Ejemplo de uso: Secuencias sincronizadas, eventos en cadena
// Sistema de puntuación
// En el sprite del jugador
al recibir [punto-obtenido]
cambiar [Puntos] por (10)
si <(Puntos) > [100]> entonces
enviar [nivel-completado]
fin
// En el sprite de la estrella
al hacer clic en este objeto
enviar [punto-obtenido]
esconder

al empezar como clon

  • Propósito: Se ejecuta cuando se crea un clon del sprite
  • Ejemplo de uso: Inicialización de clones, comportamiento específico
// Sistema de proyectiles
// En el sprite original
al presionar tecla [espacio]
crear clon de [mí mismo]
// Comportamiento del clon
al empezar como clon
apuntar en dirección (dirección de [Jugador])
repetir hasta que <tocando [borde]?>
mover (10) pasos
fin
borrar este clon

esperar (1) segundos

  • Propósito: Pausa la ejecución del script por un tiempo determinado
  • Parámetros: Tiempo en segundos (acepta decimales)
  • Ejemplo de uso: Temporizadores, ritmo de animaciones

esperar hasta que <tocando [ratón]?>

  • Propósito: Pausa hasta que se cumpla una condición
  • Ejemplo de uso: Esperar interacción del usuario, sincronización
// Cuenta regresiva
repetir (3) veces
decir (unir [Empezando en ] ((4) - (contador)))
esperar (1) segundos
fin
decir [¡Ya!]

repetir (10) veces

  • Propósito: Ejecuta los bloques internos un número específico de veces
  • Ejemplo de uso: Animaciones, acciones repetitivas

por siempre

  • Propósito: Ejecuta los bloques internos indefinidamente
  • Ejemplo de uso: Bucles principales de juego, comportamientos continuos

repetir hasta que <tocando [ratón]?>

  • Propósito: Repite hasta que se cumpla una condición
  • Ejemplo de uso: Bucles condicionales, esperar eventos
// Movimiento automático hasta tocar un borde
repetir hasta que <tocando color [#FF0000]?> // Rojo = obstáculo
mover (3) pasos
si <tocando [borde]?> entonces
girar ↻ (180) grados
fin
fin

si <tocando [ratón]?> entonces

  • Propósito: Ejecuta bloques solo si se cumple la condición
  • Ejemplo de uso: Lógica condicional, respuestas a eventos

si <tocando [ratón]?> entonces … si no

  • Propósito: Ejecuta diferentes bloques según la condición
  • Ejemplo de uso: Alternativas, comportamientos opuestos
// IA simple de enemigo
si <(distancia a [Jugador]) < [100]> entonces
apuntar hacia [Jugador]
mover (2) pasos
cambiar a disfraz [persiguiendo]
si no
mover (1) pasos
cambiar a disfraz [patrullando]
fin

parar [todo]

  • Opciones:
    • “todo”: Detiene todos los scripts en todos los sprites
    • “este script”: Detiene solo el script actual
    • “otros programas en el objeto”: Detiene otros scripts del mismo sprite
  • Ejemplo de uso: Game over, pausar juego
// Sistema de vidas
si <(Vidas) < [1]> entonces
decir [Game Over] por (3) segundos
parar [todo]
fin

crear clon de [mí mismo]

  • Propósito: Crea una copia del sprite con el mismo comportamiento
  • Ejemplo de uso: Proyectiles, enemigos múltiples, efectos de partículas

borrar este clon

  • Propósito: Elimina el clon actual (solo funciona en clones)
  • Ejemplo de uso: Limpiar objetos temporales, gestión de memoria
// Sistema de partículas de explosión
al recibir [explosión]
repetir (20) veces
crear clon de [Partícula]
fin
// En el sprite Partícula
al empezar como clon
ir a x: (posición x de [Explosión]) y: (posición y de [Explosión])
apuntar en dirección (número al azar entre (1) y (360))
repetir (30) veces
mover (número al azar entre (2) y (8)) pasos
cambiar efecto [fantasma] por (3)
fin
borrar este clon

¿tocando [ratón]?

  • Opciones: ratón, borde, otro sprite, color específico
  • Propósito: Detecta si el sprite está tocando algo
  • Ejemplo de uso: Colisiones, interacciones

¿tocando color [#FF0000]?

  • Propósito: Detecta si el sprite toca un color específico
  • Ejemplo de uso: Detección de terreno, zonas especiales

¿color [#FF0000] está tocando [#00FF00]?

  • Propósito: Detecta si un color del sprite toca otro color
  • Ejemplo de uso: Detección precisa de colisiones
// Detección de suelo para salto
si <tocando color [#8B4513]?> entonces // Marrón = suelo
fijar [en-suelo] a [verdadero]
si no
fijar [en-suelo] a [falso]
fin
// Solo permitir saltar si está en el suelo
al presionar tecla [espacio]
si <(en-suelo) = [verdadero]> entonces
cambiar y por (50)
fin

(posición x del ratón) y (posición y del ratón)

  • Propósito: Devuelven las coordenadas actuales del cursor
  • Ejemplo de uso: Seguimiento del ratón, interfaces interactivas

¿ratón presionado?

  • Propósito: Detecta si se está haciendo clic
  • Ejemplo de uso: Arrastrar objetos, dibujar
// Dibujo con el ratón
si <ratón presionado?> entonces
ir a x: (posición x del ratón) y: (posición y del ratón)
bajar lápiz
si no
subir lápiz
fin

¿tecla [espacio] presionada?

  • Propósito: Detecta si una tecla específica está siendo presionada
  • Ejemplo de uso: Controles continuos, movimiento suave
// Movimiento suave con teclas
por siempre
si <tecla [flecha derecha] presionada?> entonces
cambiar x por (5)
fin
si <tecla [flecha izquierda] presionada?> entonces
cambiar x por (-5)
fin
si <tecla [flecha arriba] presionada?> entonces
cambiar y por (5)
fin
si <tecla [flecha abajo] presionada?> entonces
cambiar y por (-5)
fin
fin

(distancia a [ratón])

  • Propósito: Calcula la distancia al cursor o a otro sprite
  • Ejemplo de uso: IA de enemigos, detección de proximidad

(dirección a [ratón])

  • Propósito: Calcula el ángulo hacia el cursor o otro sprite
  • Ejemplo de uso: Apuntado automático, navegación
// Enemigo que persigue al jugador
si <(distancia a [Jugador]) < [200]> entonces
apuntar en dirección (dirección a [Jugador])
mover (3) pasos
fin

(respuesta)

  • Propósito: Contiene la respuesta del último bloque “preguntar”
  • Ejemplo de uso: Entrada de texto del usuario

preguntar [¿Cuál es tu nombre?] y esperar

  • Propósito: Solicita entrada de texto al usuario
  • Ejemplo de uso: Diálogos interactivos, configuración
// Sistema de nombre del jugador
preguntar [¿Cómo te llamas?] y esperar
fijar [NombreJugador] a (respuesta)
decir (unir [¡Hola, ] (unir (NombreJugador) [!])) por (3) segundos

(temporizador)

  • Propósito: Tiempo transcurrido desde el último reinicio
  • Ejemplo de uso: Cronómetros, eventos temporizados

reiniciar temporizador

  • Propósito: Pone el temporizador a cero
  • Ejemplo de uso: Marcar inicio de eventos, medir intervalos

(volumen)

  • Propósito: Nivel de sonido detectado por el micrófono
  • Ejemplo de uso: Juegos controlados por voz, detección de ruido
// Juego que reacciona al sonido
si <(volumen) > [30]> entonces
cambiar tamaño por (5)
cambiar efecto [color] por (10)
si no
si <(tamaño) > [100]> entonces
cambiar tamaño por (-2)
fin
fin

([posición x] de [Sprite1])

  • Propiedades disponibles: posición x, posición y, dirección, disfraz, tamaño, volumen
  • Propósito: Obtiene información de otros sprites
  • Ejemplo de uso: Coordinación entre sprites, lógica compleja
// Cámara que sigue al jugador
fijar x a ((posición x de [Jugador]) / (2))
fijar y a ((posición y de [Jugador]) / (2))

(día actual [día])

  • Opciones: año, mes, día, día de la semana, hora, minuto, segundo
  • Propósito: Obtiene información de fecha y hora actual
  • Ejemplo de uso: Eventos especiales, relojes, calendarios
// Saludo según la hora del día
si <(día actual [hora]) < [12]> entonces
decir [¡Buenos días!]
si no
si <(día actual [hora]) < [18]> entonces
decir [¡Buenas tardes!]
si no
decir [¡Buenas noches!]
fin
fin

(días desde 2000)

  • Propósito: Número de días transcurridos desde el 1 de enero de 2000
  • Ejemplo de uso: Cálculos de tiempo, eventos únicos

nombre de usuario

  • Propósito: Nombre del usuario de Scratch (si está conectado)
  • Ejemplo de uso: Personalización, saludos

((4) + (3)) - Suma ((4) - (3)) - Resta ((4) * (3)) - Multiplicación ((4) / (3)) - División

// Cálculo de puntuación con bonus
fijar [PuntosTotales] a (((Puntos) * (Multiplicador)) + (Bonus))

número al azar entre (1) y (10)

  • Propósito: Genera un número aleatorio en el rango especificado
  • Ejemplo de uso: Elementos aleatorios, variabilidad en juegos
// Aparición aleatoria de enemigos
si <(número al azar entre (1) y (100)) < [5]> entonces
crear clon de [Enemigo]
fin

<(50) > (25)> - Mayor que <(50) < (25)> - Menor que <(50) = (25)> - Igual a

// Sistema de niveles
si <(Puntos) > [1000]> entonces
fijar [Nivel] a (3)
si no
si <(Puntos) > [500]> entonces
fijar [Nivel] a (2)
si no
fijar [Nivel] a (1)
fin
fin

<<tocando [ratón]?> y <tecla [espacio] presionada?>>

  • Propósito: Verdadero solo si ambas condiciones son verdaderas
  • Ejemplo de uso: Condiciones múltiples, lógica compleja

<<tocando [ratón]?> o <tecla [espacio] presionada?>>

  • Propósito: Verdadero si al menos una condición es verdadera
  • Ejemplo de uso: Alternativas, múltiples formas de activación

<no <tocando [ratón]?>>

  • Propósito: Invierte el valor lógico (verdadero ↔ falso)
  • Ejemplo de uso: Condiciones inversas, lógica negativa
// Movimiento solo si no está tocando obstáculos
si <no <tocando color [#FF0000]?>> entonces
mover (5) pasos
fin
// Saltar solo si está en el suelo Y se presiona espacio
si <<tocando color [#00FF00]?> y <tecla [espacio] presionada?>> entonces
cambiar y por (50)
fin

unir [manzana] [plátano]

  • Propósito: Combina dos textos en uno solo
  • Ejemplo de uso: Crear mensajes, formatear texto

letra (1) de [manzana]

  • Propósito: Extrae un carácter específico de un texto
  • Ejemplo de uso: Análisis de texto, efectos de escritura

longitud de [manzana]

  • Propósito: Cuenta el número de caracteres en un texto
  • Ejemplo de uso: Validación de entrada, formateo
// Sistema de puntuación con formato
fijar [TextoPuntos] a (unir [Puntos: ] (Puntos))
decir (TextoPuntos)
// Efecto de escritura letra por letra
fijar [Mensaje] a [¡Hola mundo!]
fijar [i] a (1)
repetir (longitud de (Mensaje)) veces
decir (letra (i) de (Mensaje))
cambiar [i] por (1)
esperar (0.1) segundos
fin

¿[manzana] contiene [a]?

  • Propósito: Verifica si un texto contiene otro texto
  • Ejemplo de uso: Búsqueda en texto, validación
// Filtro de palabras
preguntar [Escribe una palabra:] y esperar
si <(respuesta) contiene [malo]> entonces
decir [¡Palabra no permitida!]
si no
decir (unir [Dijiste: ] (respuesta))
fin

resto de ((7) / (3))

  • Propósito: Devuelve el residuo de una división
  • Ejemplo de uso: Ciclos, patrones, detección de números pares/impares

redondear (3.7)

  • Propósito: Redondea un número al entero más cercano
  • Ejemplo de uso: Simplificar números, cálculos de posición
// Detectar números pares
si <(resto de ((número) / (2))) = [0]> entonces
decir [Es par]
si no
decir [Es impar]
fin
// Posicionamiento en cuadrícula
fijar x a (redondear ((posición x del ratón) / (50)) * (50))
fijar y a (redondear ((posición y del ratón) / (50)) * (50))

([abs] de (-15))

  • Funciones disponibles:
    • abs: Valor absoluto
    • floor: Redondear hacia abajo
    • ceiling: Redondear hacia arriba
    • sqrt: Raíz cuadrada
    • sin, cos, tan: Funciones trigonométricas
    • asin, acos, atan: Funciones trigonométricas inversas
    • ln: Logaritmo natural
    • log: Logaritmo base 10
    • e ^: Exponencial
    • 10 ^: Potencia de 10
// Cálculo de distancia usando teorema de Pitágoras
fijar [dx] a ((posición x) - (posición x de [Objetivo]))
fijar [dy] a ((posición y) - (posición y de [Objetivo]))
fijar [distancia] a ([sqrt] de (((dx) * (dx)) + ((dy) * (dy))))
// Movimiento circular
cambiar [ángulo] por (5)
fijar x a (([cos] de (ángulo)) * (100))
fijar y a (([sin] de (ángulo)) * (100))

fijar [mi variable] a (0)

  • Propósito: Asigna un valor específico a una variable
  • Ejemplo de uso: Inicialización, resetear valores

cambiar [mi variable] por (1)

  • Propósito: Modifica el valor actual de una variable
  • Ejemplo de uso: Contadores, acumuladores

(mi variable)

  • Propósito: Devuelve el valor actual de la variable
  • Ejemplo de uso: Usar el valor en cálculos o condiciones
// Sistema de puntuación
al presionar ⚑
fijar [Puntos] a (0)
fijar [Vidas] a (3)
// Al recoger una moneda
cambiar [Puntos] por (10)
si <(Puntos) > [100]> entonces
cambiar [Vidas] por (1)
fijar [Puntos] a (0)
fin

mostrar variable [mi variable]

  • Propósito: Hace visible la variable en el escenario
  • Ejemplo de uso: Mostrar información importante al jugador

esconder variable [mi variable]

  • Propósito: Oculta la variable del escenario
  • Ejemplo de uso: Limpiar interfaz, ocultar información temporal

añadir [cosa] a [mi lista]

  • Propósito: Agrega un elemento al final de la lista
  • Ejemplo de uso: Inventarios, historial, colecciones

borrar (1) de [mi lista]

  • Propósito: Elimina un elemento específico de la lista
  • Opciones: Número de posición, “último”, “todo”
  • Ejemplo de uso: Gestión de inventario, limpiar datos

insertar [cosa] en (1) de [mi lista]

  • Propósito: Inserta un elemento en una posición específica
  • Ejemplo de uso: Ordenar elementos, insertar en posición específica

reemplazar elemento (1) de [mi lista] por [cosa]

  • Propósito: Cambia un elemento existente en la lista
  • Ejemplo de uso: Actualizar datos, modificar inventario
// Sistema de inventario
al recibir [recoger-objeto]
añadir (NombreObjeto) a [Inventario]
decir (unir [Recogido: ] (NombreObjeto)) por (2) segundos
// Usar objeto del inventario
si <(longitud de [Inventario]) > [0]> entonces
fijar [ObjetoUsado] a (elemento (1) de [Inventario])
borrar (1) de [Inventario]
decir (unir [Usando: ] (ObjetoUsado)) por (2) segundos
fin

elemento (1) de [mi lista]

  • Propósito: Devuelve un elemento específico de la lista
  • Opciones: Número de posición, “último”, “al azar”
  • Ejemplo de uso: Acceder a datos, selección aleatoria

número del elemento [cosa] en [mi lista]

  • Propósito: Encuentra la posición de un elemento en la lista
  • Ejemplo de uso: Búsqueda, verificar existencia

longitud de [mi lista]

  • Propósito: Devuelve el número de elementos en la lista
  • Ejemplo de uso: Bucles, verificar si está vacía

¿[mi lista] contiene [cosa]?

  • Propósito: Verifica si un elemento existe en la lista
  • Ejemplo de uso: Verificar permisos, validar entrada
// Sistema de logros
si <no <[Logros] contiene [PrimerNivel]>> entonces
si <(Nivel) = [1]> entonces
añadir [PrimerNivel] a [Logros]
decir [¡Logro desbloqueado: Primer Nivel!] por (3) segundos
fin
fin
// Mostrar inventario
fijar [i] a (1)
repetir (longitud de [Inventario]) veces
decir (elemento (i) de [Inventario]) por (1) segundos
cambiar [i] por (1)
fin

mostrar lista [mi lista] y esconder lista [mi lista]

  • Propósito: Controla la visibilidad de la lista en el escenario
  • Ejemplo de uso: Mostrar/ocultar inventarios, menús

tocar nota (60) por (0.5) pulsos

  • Propósito: Reproduce una nota musical específica
  • Parámetros: Número de nota MIDI (60 = Do central), duración
  • Ejemplo de uso: Crear melodías, efectos sonoros musicales

tocar tambor (1) por (0.25) pulsos

  • Propósito: Reproduce un sonido de percusión
  • Parámetros: Tipo de tambor (1-18), duración
  • Ejemplo de uso: Ritmos, efectos de percusión
// Melodía simple
tocar nota (60) por (0.5) pulsos // Do
tocar nota (62) por (0.5) pulsos // Re
tocar nota (64) por (0.5) pulsos // Mi
tocar nota (65) por (1) pulsos // Fa
// Ritmo de batería
repetir (4) veces
tocar tambor (1) por (0.5) pulsos // Bombo
tocar tambor (3) por (0.5) pulsos // Caja
fin

silenciar por (0.25) pulsos

  • Propósito: Crea una pausa en la música
  • Ejemplo de uso: Espacios en melodías, ritmos sincopados

fijar instrumento a (1)

  • Propósito: Cambia el sonido del instrumento
  • Instrumentos: Piano, órgano, guitarra, bajo, etc.
  • Ejemplo de uso: Variedad tímbrica, diferentes voces

fijar tempo a (60) ppm

  • Propósito: Establece la velocidad de la música
  • Parámetros: Pulsos por minuto
  • Ejemplo de uso: Controlar velocidad musical, efectos dramáticos

cambiar tempo por (20)

  • Propósito: Modifica gradualmente la velocidad
  • Ejemplo de uso: Acelerar/desacelerar música, transiciones

borrar todo

  • Propósito: Limpia todos los dibujos del escenario
  • Ejemplo de uso: Limpiar pantalla, reiniciar dibujo

sellar

  • Propósito: Deja una marca del sprite en su posición actual
  • Ejemplo de uso: Crear patrones, dejar rastros

bajar lápiz y subir lápiz

  • Propósito: Controla si el sprite dibuja al moverse
  • Ejemplo de uso: Dibujo controlado, crear líneas
// Dibujo automático de cuadrado
bajar lápiz
repetir (4) veces
mover (100) pasos
girar ↻ (90) grados
fin
subir lápiz

fijar color de lápiz a [#FF0000]

  • Propósito: Cambia el color del trazo
  • Ejemplo de uso: Dibujos multicolor, codificación por colores

cambiar color de lápiz por (10)

  • Propósito: Modifica gradualmente el color
  • Ejemplo de uso: Efectos de arcoíris, transiciones de color

fijar intensidad de lápiz a (50)

  • Propósito: Controla la saturación del color
  • Ejemplo de uso: Efectos de desvanecimiento, variaciones tonales

fijar grosor de lápiz a (1)

  • Propósito: Establece el ancho del trazo
  • Ejemplo de uso: Líneas gruesas/finas, efectos de pincel
// Efecto de arcoíris
bajar lápiz
repetir (360) veces
cambiar color de lápiz por (1)
mover (2) pasos
girar ↻ (1) grados
fin
subir lápiz

Gestión de Clones:

// Limitar número de clones para evitar lag
si <(NumClones) < [50]> entonces
crear clon de [mí mismo]
cambiar [NumClones] por (1)
fin
// En cada clon al borrarse
cambiar [NumClones] por (-1)

Uso Eficiente de Bucles:

// MALO: Bucle innecesario
por siempre
si <tecla [espacio] presionada?> entonces
// acción
fin
fin
// BUENO: Evento directo
al presionar tecla [espacio]
// acción

Estado de Máquina:

// Variable "Estado" puede ser: "menu", "jugando", "pausa", "gameover"
si <(Estado) = [jugando]> entonces
// lógica del juego
si no
si <(Estado) = [menu]> entonces
// lógica del menú
fin
fin

Temporizador Personalizado:

// Crear eventos cada X segundos sin bloquear
si <(temporizador) > (UltimoEvento + IntervaloEvento)> entonces
// ejecutar evento
fijar [UltimoEvento] a (temporizador)
fin

Interpolación Suave:

// Movimiento suave hacia un objetivo
fijar [diferencia] a ((ObjetivoX) - (posición x))
cambiar x por ((diferencia) / (10)) // Ajustar velocidad con divisor

Visualización de Variables:

// Mostrar información de debug
decir (unir [X:] (unir (posición x) (unir [ Y:] (posición y))))

Puntos de Control:

// Verificar que el código llega a cierto punto
decir [Checkpoint 1] por (0.5) segundos

Validación de Entrada:

// Asegurar que los valores están en rango válido
si <(Velocidad) > [10]> entonces
fijar [Velocidad] a (10)
fin
si <(Velocidad) < [0]> entonces
fijar [Velocidad] a (0)
fin
  • Documentación Oficial de Scratch: Referencia completa y actualizada
  • Comunidad de Scratch: Proyectos compartidos y colaboración
  • Tutoriales Avanzados: Técnicas específicas y casos de uso complejos
  • Extensiones de Terceros: Bloques adicionales para funcionalidades específicas
  1. Experimenta con combinaciones de bloques
  2. Crea proyectos progresivamente más complejos
  3. Estudia proyectos de otros usuarios
  4. Participa en la comunidad para aprender y enseñar
  5. Explora extensiones y funcionalidades avanzadas

¡Feliz programación! 🎉