¿Cómo puedo suavizar las animaciones en Scratch? Principalmente, lo quiero de tal manera que cuando presiona y mantiene presionada la flecha derecha, vaya a la derecha sin ningún tic nervioso notable. Además, el rasguño te hace esperar un segundo para repetir cuando sostienes una flecha. ¿Cómo puedo suavizar esto?Suavizar el movimiento de los sprites en cero
Respuesta
Con Scratch, puede obtener movimientos muy suaves utilizando Glide
con distancias largas o intervalos. Sin embargo, la desventaja de este método es que la operación Glide debe finalizar antes de que el sprite pueda hacer ninguna detección, como detección de colisiones o bordes. Esto a menudo es indeseable.
El pequeño retraso del que está hablando cuando presiona una tecla, está directamente relacionado con la velocidad de repetición de su teclado. Cuando presiona una tecla en su teclado, ese evento clave se envía, pero luego hay un pequeño retraso antes de que la repetición se active. Si puede encontrar una manera de cambiar la velocidad de repetición del teclado de su sistema, esto se extendería a Scratch.
Existe un límite en cuanto a la optimización que puede hacer en Scratch. Es, después de todo, un entorno de programación de nivel de entrada muy básico (pero muy divertido). :)
que podría hacer hasta que "flecha no presionado"
cuando se pulsa la flecha de repetición mover (o deslizamiento) hasta que no flecha pulsada
entonces no va a comprobar pulsando la tecla a intervalos fijos, haciendo que el movimiento sea más suave.
Sé que es una vieja pregunta. Pero en caso de que alguien esté buscando una solución, revise este proyecto de cero: http://scratch.mit.edu/projects/276298/
Simplemente agregue siempre el ciclo y dentro de este lazo compruebe si se presiona la tecla de flecha. Si es así, muévete. De esta manera no dependerá de la velocidad de repetición del teclado.
Usted puede hacer esto:
When flag pressed
forever
if (right arrow pressed?) then
change xs by 1
xs = xs * 0.8
change x by (xs)
que comprueba cada vez que si se pulsa la flecha hacia la derecha, y si es así, cambia la variable xs
por uno. Más tarde, multiplica xs por 0.8, por lo que el valor decae a la vista.
Luego cambia la x del sprite por el var xs
.
Una forma de hacerlo es usar variables y bloques personalizados para crear argumentos que suavicen el movimiento. Agregue una variable llamada velocidad x y use un cambio de X para siempre por velocidad X. No tengo instantáneas ni ejemplos, pero puede usar scripts en el bloque personalizado para deslizarlos suavemente.
- 1. Mejorando el rendimiento de los sprites animados en three.js
- 2. ¿Cómo 'suavizar' los datos y calcular el gradiente de línea?
- 3. alisar el movimiento del mouse
- 4. Iterativamente suavizar una curva
- 5. imagen Lona Suavizar
- 6. Suavizar el zoom en la vista de mapa
- 7. ¿IE (7?) Distorsiona los fondos de los sprites?
- 8. Sprites de escala en SDL
- 9. CSS Sprites de rendimiento
- 10. .NET movimiento de hilos entre los núcleos
- 11. sprites de imagen CSS
- 12. iphone reconoce diferentes formas con el movimiento de los dedos
- 13. Multijugador suave movimiento
- 14. cómo cambiar la posición de los sprites de forma dinámica?
- 15. ¿Cómo escalar un UIImage sin suavizar nada?
- 16. ¿Cómo los sprites de CSS aceleran un sitio web?
- 17. ¿cómo uso sprites de imagen en GWT?
- 18. Uso de sprites de imagen en android
- 19. Detecta el juego ganador en cero y cruces
- 20. los mapas de Google marcador en movimiento al hacer clic
- 21. simular el movimiento del ratón en Ubuntu
- 22. ¿Cómo cambio el orden Z de los sprites en Objective-C?
- 23. ¿Cómo enmascarar los sprites en cocos2d por el alfa de un degradado?
- 24. Cocos2d - múltiples sprites en el nodo padre no capa
- 25. Sprites in Rails 3.1
- 26. sprites CSS e IE6
- 27. ¿Son grandes los sprites CSS una buena idea?
- 28. Android MapActivity en el movimiento del mapa
- 29. Cómo detectar el movimiento sacudida en iPhone
- 30. Movimiento del mouse en el elemento
** ADVERTENCIA: ¡Error en el código! ** ¿Dónde está la restauración de 'xs'? El valor de 'xs' irá muy rápidamente de' 1' a '0.8' a' 0.64' a '0.512' a' 0.4096' ... ¡y eso suponiendo que comience en 1! Como no hay 'conjunto [xs v] en (número)', el valor ** nunca se restablecerá **. – wizzwizz4
El código funciona. Cualquier valor de 'xs' se vuelve exponencialmente más pequeño cuando no se presiona la tecla de la flecha hacia la derecha. Así que 'xs' se acerca a cero cuando no se pulsa ninguna tecla y tiene un valor de 4 (calculado por 0.8/(1-0.8)) cuando se mantiene presionada la tecla de flecha derecha. –