Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo controla el asistente de botones el mouse para girar al personaje en el juego?

¿Cómo controla el asistente de botones el mouse para girar al personaje en el juego?

Dim x0, y0//Eje central del movimiento de la flecha

Espaciado del arco = 1//Representa la distancia del arco generada cada vez que se mueve la flecha

Radio = 100

π = 4 * atn(1)

Hacer

n = 0

Mientras n < π * 2

x = x0 + radio * sin(n)

y = y0 - radio * cos(n)

IfColor x,y,"FFFFFF",0 Entonces ( Marca de carácter en el minimapa, asumiendo que es una pequeña flecha blanca)

MessageBox x & y

End If

n = n + espaciado de arco/radio

p>

Wend

bucle

Primero determina la perspectiva de tu personaje. Esta es una idea y no sé cómo escribirla.

Las coordenadas del personaje se conocen en cualquier momento Sí, las coordenadas del destino también se conocen, entonces puedes usar la función GetAngle para saber la dirección del personaje hacia el destino (el ángulo con el eje X). Esto es: ángulo deseado = GetAngle(currentX, currentY, destX, destY)

Además, si el personaje avanza en línea recta una cierta distancia, entonces puedes conocer las dos coordenadas antes de que el personaje comience. y después de moverse, para que puedas calcular la dirección del movimiento del personaje, es decir, conocer indirectamente la dirección del personaje. Esto es: currentAngle=GetAngle(lastX, lastY, currentX, currentY)

Una vez que conoces estas dos direcciones, puedes calcular cuánto necesita girar el personaje para mirar exactamente al punto objetivo. Resta la orientación del personaje de la dirección del objetivo para obtener este ángulo. Código: dAngle=desiredAngle-currentAngle

Sin embargo, el ángulo en sí debe ajustarse. Por ejemplo, si el objetivo es de 359 grados y el personaje mira a 0 grados, el ángulo restado es de 359 grados, entonces usted. ¿Realmente quieres que el personaje gire en sentido antihorario (gira a la izquierda) 359 grados? En cambio, basta con girar 1 grado en el sentido de las agujas del reloj (girar a la derecha), lo que significa que el ángulo debe convertirse de -180 grados a +180 grados. Los signos más y menos representan si se debe girar a la izquierda o a la derecha. El código es:

if dAngle > pi entonces

dAngle=dAngle-pi*2

fin si

if dAngle < - pi entonces

dAngle=dAngle+pi*2

finalizar si