Quiero crear un juego usando el motor Evkworld. ¿Cómo arrastro y suelto bloques en el juego?
Implementar arrastrar y soltar
Para realizar la función de arrastrar y soltar, primero debemos agregar la capacidad de arrastrar al objeto que se va a arrastrar y soltar
Después de agregar esto capacidad, el objeto puede seguir el movimiento del mouse
Fijar el objeto después de arrastrarlo a una posición fija
Primero, creamos un objeto de destino de arrastre y luego, cuando el objeto A deja de arrastrarse y se acerca al objetivo, fijamos el sprite A en el objetivo. Fija el sprite A en el punto objetivo.
Coloca tres objetivos de arrastre en la escena
Agrega una variable global: Determinar la distancia, que se utiliza para determinar la distancia del sprite A desde el objetivo de arrastre para poder arreglarlo
p>
A continuación, agregamos un evento que fijará el sprite A al objetivo si está lo suficientemente cerca del objetivo de arrastre al final del proceso de arrastre.
Se activa cuando se suelta el arrastre
Selecciona el punto de destino de arrastre más cercano al sprite A
Si el sprite A está lo suficientemente cerca del punto de destino de arrastre
abs(distancia(sprite A.x,sprite A.y,arrastrar punto objetivo.x,arrastrar punto objetivo.y))?x,y,drag-target.x,drag-target.y))?, abs toma el absoluto valor, distancia Calcula la distancia entre dos puntos
Establece la posición del sprite A en la posición del punto de destino de arrastre y desactiva la función de arrastre
Puedes ver el efecto obteniendo una vista previa del juego Cuando la distancia entre arrastrar el sprite A en el punto objetivo sea lo suficientemente cercana, suelta el mouse, el sprite A se fijará en la posición del punto objetivo y no se podrá arrastrar nuevamente
Cuando la distancia no sea la misma. suficiente. Regresar a la posición inicial
Primero, creamos las coordenadas iniciales de la variable de instancia bajo el sprite A
Inicializamos la variable de instancia al comienzo de la escena
Bajo el evento de liberación de arrastre Agregue un subevento: Regrese a las coordenadas iniciales cuando la distancia no sea suficiente
Vista previa del juego Cuando la distancia no sea suficiente, Elf A regresará a la posición inicial.
Añadir efecto de movimiento suave para volver a la posición inicial
A continuación, implementamos la función de movimiento suave a través de la expresión lerp. Primero, creamos el estado de retorno de la variable de instancia. Cuando el estado de retorno es 1, el objeto A regresará suavemente a la posición inicial.
Cuando hacemos clic y arrastramos, establecemos el estado de retorno en 0
Cuando soltamos el arrastre, modificamos la acción desde cambiar coordenadas hasta establecer el estado de retorno
Finalmente, cuando el estado de retorno = 1, regresa suavemente a la posición inicial
X:?lerp(spriteA.x, spriteA.initial coordenadas x,dt * 10)
X .?lerp(sprite A.y,sprite A.coordenada inicial y,dt * 10)
Los anteriores son todos los eventos en este tutorial. Los eventos generales son los siguientes: