From Test-Scratch-Wiki
| Posición en x | |
(posición en x) | |
| Categoría | Movimiento |
| Forma | Valor |
El bloque posición en x es un bloque de movimiento y un bloque valor. El bloque contiene la posición en x de su objeto. El bloque puede ser mostrado con un monitor de escenario.
Usos de ejemplo
Algunos usos comunes del bloque posición en x son:
- Activar acciones basándose en la posición de un objeto en la pantalla
por siempre
esperar hasta que <(posición en x) > (220)>
sumar a [aciertos v] (1)
end
- Establecer valores de una variable mediante un deslizador diferente al deslizador de Scratch, siendo el valor de la variable la posición en x del deslizador
dar a [variable v] el valor (posición en x)
- Comparar la posición en x con un registro previo para detectar movimiento
al presionar bandera verde
dar a [posición en x previa v] el valor (posición en x)
fijar modo de arrastre a [arrastrable v] // hace que el objeto sea más fácil de mover
por siempre
si <no <(posición en x previa) = (posición en x)>> entonces
decir [¡Me moví!] durante (2) segundos // si la posición en x cambió, decir algo
dar a [posición en x previa v] el valor (posición en x)
end
end
- Guardar el movimiento en x de un objeto para poder reproducirlo después
al presionar bandera verde // el código solo funciona en un objeto
eliminar todos de [posiciones x v]
eliminar todos de [posiciones y v]
decir [¡Mueve tu ratón y reproduciré el movimiento!] durante (2) segundos
decir [¡Ya!] durante (1) segundos
repetir (50) // guarda 50 coordenadas a un ritmo de una cada 0.1 segundos
ir a (puntero del ratón v)
añadir (posición en x) a [posiciones x v]
añadir (posición en y) a [posiciones y v]
esperar (0.1) segundos
end
dar a [contador v] el valor (1)
decir [¡Ahora reproduciré tus movimientos!] durante (2) segundos
repetir (50)
ir a x: (elemento (contador) de [posiciones x v]) y: (elemento (contador) de [posiciones y v])
esperar (0.1) segundos
sumar a [contador v] (1)
end
- Cambiar la velocidad de un objeto basándose en sus coordenadas
Código alternativo
El bloque puede ser replicado encontrando la posición del sprite mediante el bloque sensor () de ():
([posición en x v] de (objeto deseado v))
Sin embargo, como esto requiere el uso del bloque ([ v] de ( v)) no es posible usarlo para conseguir la posición en x del objeto seleccionado. Por ello, ha de usarse desde otro objeto, o usar el siguiente código alternativo:
([posición en x v] de (unir [objeto deseado] []))