🔵 Movimiento
Controla la posición y orientación de los sprites
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.
🔵 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
// Hacer que un personaje camineal presionar tecla [flecha derecha]apuntar en dirección (90)mover (5) pasos
girar ↻ (15) grados
girar ↺ (15) grados
// Hacer que un objeto gire continuamentepor siempre girar ↻ (5) grados esperar (0.1) segundosfin
ir a x: (0) y: (0)
// Teletransportar a esquinas de la pantallaal 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)
deslizar en (1) segundos a x: (0) y: (0)
// Animación de entrada suaveal presionar ⚑ir a x: (-300) y: (0) // Fuera de pantalladeslizar en (2) segundos a x: (0) y: (0) // Entrar suavemente
apuntar en dirección (90)
apuntar hacia (puntero del ratón)
// Torreta que sigue al ratónpor siempre apuntar hacia (puntero del ratón)fin
cambiar x por (10)
cambiar y por (10)
// Control de movimiento con teclasal 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)
(dirección)
// Rebotar en los bordes manualmentesi <(posición x) > [230]> entonces fijar x a (230) apuntar en dirección ((180) - (dirección))fin
fijar estilo de rotación [todo alrededor]
rebotar si toca un borde
// Pelota que rebotaal presionar ⚑apuntar en dirección (número al azar entre (1) y (360))por siempre mover (5) pasos rebotar si toca un bordefin
mostrar y esconder
// Efecto de parpadeorepetir (5) veces esconder esperar (0.2) segundos mostrar esperar (0.2) segundosfin
cambiar a disfraz [disfraz1]
siguiente disfraz
// Animación de caminarpor siempre si <tecla [flecha derecha] presionada?> entonces siguiente disfraz esperar (0.1) segundos mover (3) pasos finfin
cambiar fondo a [fondo1]
fijar efecto [color] a (25)
// Efecto de daño (parpadeo rojo)al recibir [daño]fijar efecto [color] a (0) // Rojofijar efecto [brillo] a (50)esperar (0.2) segundosquitar efectos gráficos
cambiar efecto [color] por (25)
quitar efectos gráficos
fijar tamaño a (100) %
cambiar tamaño por (10)
// Efecto de respiraciónpor 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 finfin
ir al frente y ir atrás (1) capas
// Asegurar que el jugador esté siempre visibleal presionar ⚑ir al frente
decir [¡Hola!] por (2) segundos
decir [¡Hola!]
pensar [Hmm…] por (2) segundos
// Sistema de diálogo simpleal hacer clic en este objetodecir [¡Hola! ¿Cómo estás?] por (3) segundosesperar (3) segundosdecir [¡Me alegra verte!] por (2) segundos
(número de disfraz) y (nombre de disfraz)
(tamaño)
// Cambiar comportamiento según el disfrazsi <(nombre de disfraz) = [corriendo]> entonces mover (8) pasossi no mover (3) pasosfin
tocar sonido [Miau] hasta que termine
empezar sonido [Miau]
// Efectos de sonido en un juegoal presionar tecla [espacio]empezar sonido [disparo]
al recibir [colisión]tocar sonido [explosión] hasta que termine
parar todos los sonidos
fijar efecto [tono] a (0)
cambiar efecto [tono] por (10)
// Efecto de sirenarepetir (10) veces empezar sonido [tono] cambiar efecto [tono] por (50) esperar (0.2) segundosfinfijar efecto [tono] a (0)
quitar efectos de sonido
fijar volumen a (100) %
cambiar volumen por (-10)
// Fade out al final del juegorepetir (20) veces cambiar volumen por (-5) esperar (0.1) segundosfin
(volumen)
al presionar ⚑
// Configuración inicial del juegoal presionar ⚑ir a x: (0) y: (0)fijar tamaño a (100) %quitar efectos gráficosfijar [Puntos] a (0)mostrar
al hacer clic en este objeto
al presionar tecla [espacio]
// Controles de un juego de plataformasal presionar tecla [flecha arriba]si <tocando color [#00FF00]?> entonces // Verde = suelo cambiar y por (50) // Saltarfin
al presionar tecla [espacio]crear clon de [Proyectil]
al cambiar el fondo a [fondo1]
al cambiar [volumen] a más de (10)
al recibir [mensaje1]
enviar [mensaje1]
enviar [mensaje1] y esperar
// Sistema de puntuación// En el sprite del jugadoral recibir [punto-obtenido]cambiar [Puntos] por (10)si <(Puntos) > [100]> entonces enviar [nivel-completado]fin
// En el sprite de la estrellaal hacer clic en este objetoenviar [punto-obtenido]esconder
al empezar como clon
// Sistema de proyectiles// En el sprite originalal presionar tecla [espacio]crear clon de [mí mismo]
// Comportamiento del clonal empezar como clonapuntar en dirección (dirección de [Jugador])repetir hasta que <tocando [borde]?> mover (10) pasosfinborrar este clon
esperar (1) segundos
esperar hasta que <tocando [ratón]?>
// Cuenta regresivarepetir (3) veces decir (unir [Empezando en ] ((4) - (contador))) esperar (1) segundosfindecir [¡Ya!]
repetir (10) veces
por siempre
repetir hasta que <tocando [ratón]?>
// Movimiento automático hasta tocar un borderepetir hasta que <tocando color [#FF0000]?> // Rojo = obstáculo mover (3) pasos si <tocando [borde]?> entonces girar ↻ (180) grados finfin
si <tocando [ratón]?>
entonces
si <tocando [ratón]?>
entonces … si no
// IA simple de enemigosi <(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]
// Sistema de vidassi <(Vidas) < [1]> entonces decir [Game Over] por (3) segundos parar [todo]fin
crear clon de [mí mismo]
borrar este clon
// Sistema de partículas de explosiónal recibir [explosión]repetir (20) veces crear clon de [Partícula]fin
// En el sprite Partículaal empezar como clonir 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)finborrar este clon
¿tocando [ratón]?
¿tocando color [#FF0000]?
¿color [#FF0000] está tocando [#00FF00]?
// Detección de suelo para saltosi <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 sueloal 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)
¿ratón presionado?
// Dibujo con el ratónsi <ratón presionado?> entonces ir a x: (posición x del ratón) y: (posición y del ratón) bajar lápizsi no subir lápizfin
¿tecla [espacio] presionada?
// Movimiento suave con teclaspor 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) finfin
(distancia a [ratón])
(dirección a [ratón])
// Enemigo que persigue al jugadorsi <(distancia a [Jugador]) < [200]> entonces apuntar en dirección (dirección a [Jugador]) mover (3) pasosfin
(respuesta)
preguntar [¿Cuál es tu nombre?] y esperar
// Sistema de nombre del jugadorpreguntar [¿Cómo te llamas?] y esperarfijar [NombreJugador] a (respuesta)decir (unir [¡Hola, ] (unir (NombreJugador) [!])) por (3) segundos
(temporizador)
reiniciar temporizador
(volumen)
// Juego que reacciona al sonidosi <(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) finfin
([posición x] de [Sprite1])
// Cámara que sigue al jugadorfijar x a ((posición x de [Jugador]) / (2))fijar y a ((posición y de [Jugador]) / (2))
(día actual [día])
// Saludo según la hora del díasi <(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!] finfin
(días desde 2000)
nombre de usuario
((4) + (3)) - Suma ((4) - (3)) - Resta ((4) * (3)) - Multiplicación ((4) / (3)) - División
// Cálculo de puntuación con bonusfijar [PuntosTotales] a (((Puntos) * (Multiplicador)) + (Bonus))
número al azar entre (1) y (10)
// Aparición aleatoria de enemigossi <(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 nivelessi <(Puntos) > [1000]> entonces fijar [Nivel] a (3)si no si <(Puntos) > [500]> entonces fijar [Nivel] a (2) si no fijar [Nivel] a (1) finfin
<<tocando [ratón]?> y <tecla [espacio] presionada?>>
<<tocando [ratón]?> o <tecla [espacio] presionada?>>
<no <tocando [ratón]?>>
// Movimiento solo si no está tocando obstáculossi <no <tocando color [#FF0000]?>> entonces mover (5) pasosfin
// Saltar solo si está en el suelo Y se presiona espaciosi <<tocando color [#00FF00]?> y <tecla [espacio] presionada?>> entonces cambiar y por (50)fin
unir [manzana] [plátano]
letra (1) de [manzana]
longitud de [manzana]
// Sistema de puntuación con formatofijar [TextoPuntos] a (unir [Puntos: ] (Puntos))decir (TextoPuntos)
// Efecto de escritura letra por letrafijar [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) segundosfin
¿[manzana] contiene [a]?
// Filtro de palabraspreguntar [Escribe una palabra:] y esperarsi <(respuesta) contiene [malo]> entonces decir [¡Palabra no permitida!]si no decir (unir [Dijiste: ] (respuesta))fin
resto de ((7) / (3))
redondear (3.7)
// Detectar números paressi <(resto de ((número) / (2))) = [0]> entonces decir [Es par]si no decir [Es impar]fin
// Posicionamiento en cuadrículafijar 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))
// Cálculo de distancia usando teorema de Pitágorasfijar [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 circularcambiar [ángulo] por (5)fijar x a (([cos] de (ángulo)) * (100))fijar y a (([sin] de (ángulo)) * (100))
fijar [mi variable] a (0)
cambiar [mi variable] por (1)
(mi variable)
// Sistema de puntuaciónal presionar ⚑fijar [Puntos] a (0)fijar [Vidas] a (3)
// Al recoger una monedacambiar [Puntos] por (10)si <(Puntos) > [100]> entonces cambiar [Vidas] por (1) fijar [Puntos] a (0)fin
mostrar variable [mi variable]
esconder variable [mi variable]
añadir [cosa] a [mi lista]
borrar (1) de [mi lista]
insertar [cosa] en (1) de [mi lista]
reemplazar elemento (1) de [mi lista] por [cosa]
// Sistema de inventarioal recibir [recoger-objeto]añadir (NombreObjeto) a [Inventario]decir (unir [Recogido: ] (NombreObjeto)) por (2) segundos
// Usar objeto del inventariosi <(longitud de [Inventario]) > [0]> entonces fijar [ObjetoUsado] a (elemento (1) de [Inventario]) borrar (1) de [Inventario] decir (unir [Usando: ] (ObjetoUsado)) por (2) segundosfin
elemento (1) de [mi lista]
número del elemento [cosa] en [mi lista]
longitud de [mi lista]
¿[mi lista] contiene [cosa]?
// Sistema de logrossi <no <[Logros] contiene [PrimerNivel]>> entonces si <(Nivel) = [1]> entonces añadir [PrimerNivel] a [Logros] decir [¡Logro desbloqueado: Primer Nivel!] por (3) segundos finfin
// Mostrar inventariofijar [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]
tocar nota (60) por (0.5) pulsos
tocar tambor (1) por (0.25) pulsos
// Melodía simpletocar nota (60) por (0.5) pulsos // Dotocar nota (62) por (0.5) pulsos // Retocar nota (64) por (0.5) pulsos // Mitocar nota (65) por (1) pulsos // Fa
// Ritmo de bateríarepetir (4) veces tocar tambor (1) por (0.5) pulsos // Bombo tocar tambor (3) por (0.5) pulsos // Cajafin
silenciar por (0.25) pulsos
fijar instrumento a (1)
fijar tempo a (60) ppm
cambiar tempo por (20)
borrar todo
sellar
bajar lápiz y subir lápiz
// Dibujo automático de cuadradobajar lápizrepetir (4) veces mover (100) pasos girar ↻ (90) gradosfinsubir lápiz
fijar color de lápiz a [#FF0000]
cambiar color de lápiz por (10)
fijar intensidad de lápiz a (50)
fijar grosor de lápiz a (1)
// Efecto de arcoírisbajar lápizrepetir (360) veces cambiar color de lápiz por (1) mover (2) pasos girar ↻ (1) gradosfinsubir lápiz
Gestión de Clones:
// Limitar número de clones para evitar lagsi <(NumClones) < [50]> entonces crear clon de [mí mismo] cambiar [NumClones] por (1)fin
// En cada clon al borrarsecambiar [NumClones] por (-1)
Uso Eficiente de Bucles:
// MALO: Bucle innecesariopor siempre si <tecla [espacio] presionada?> entonces // acción finfin
// BUENO: Evento directoal presionar tecla [espacio]// acción
Estado de Máquina:
// Variable "Estado" puede ser: "menu", "jugando", "pausa", "gameover"si <(Estado) = [jugando]> entonces // lógica del juegosi no si <(Estado) = [menu]> entonces // lógica del menú finfin
Temporizador Personalizado:
// Crear eventos cada X segundos sin bloquearsi <(temporizador) > (UltimoEvento + IntervaloEvento)> entonces // ejecutar evento fijar [UltimoEvento] a (temporizador)fin
Interpolación Suave:
// Movimiento suave hacia un objetivofijar [diferencia] a ((ObjetivoX) - (posición x))cambiar x por ((diferencia) / (10)) // Ajustar velocidad con divisor
Visualización de Variables:
// Mostrar información de debugdecir (unir [X:] (unir (posición x) (unir [ Y:] (posición y))))
Puntos de Control:
// Verificar que el código llega a cierto puntodecir [Checkpoint 1] por (0.5) segundos
Validación de Entrada:
// Asegurar que los valores están en rango válidosi <(Velocidad) > [10]> entonces fijar [Velocidad] a (10)finsi <(Velocidad) < [0]> entonces fijar [Velocidad] a (0)fin
¡Feliz programación! 🎉