¿Cómo puedo hacer un movimiento de coordenadas polares fácil de usar alrededor de un círculo?

23

Estoy trabajando en un juego 2D en el que aterrizas en planetas con un barco y puedes salir del barco y caminar.

Estos planetas son muy pequeños (piensa ~ 350 píxeles de radio a veces), y se ven desde un lado. Por lo tanto, puede ver fácilmente todo el planeta en la pantalla en general.

Esto puede ser algo confuso, así que aquí hay una imagen: juego espacial

Estoy usando las teclas A y D para moverme en sentido antihorario y horario, respectivamente. El problema es que si estás en la "cima" del planeta (mitad superior), esto tiene sentido: A se mueve hacia la izquierda, D se mueve hacia la derecha. Sin embargo, si estás en el "fondo" del planeta (mitad inferior), A se mueve hacia la derecha y D se mueve hacia la izquierda.

¿Alguna idea sobre cómo puedo hacer esto más fácil de usar?

MCMastery
fuente
21
¿Ha preguntado a los usuarios si les resulta confuso? Por mi parte, ciertamente no: presionas hacia la derecha para mover a tu personaje hacia la derecha y hacia la izquierda para moverlo desde la perspectiva de tu personaje . Esto es mucho mejor que, por ejemplo, cambiar los botones en el medio de un turno (si planeaba hacer eso).
Charanor

Respuestas:

38

Mi primera sugerencia sería simplemente seguir con A= Dmovimiento en sentido antihorario y = movimiento en sentido horario. No es muy confuso y es más o menos la opción "estándar" (es decir, la más común) cuando se trata de un movimiento orbital como este.

Otra forma sería cambiar la forma en que se mueve tu juego. En lugar de mover al jugador cuando está en un planeta, podrías rotar el planeta. Esta también es una opción muy común, pero puede ser desorientador si tienes varios planetas en la pantalla, ya que todo, excepto el jugador, tendrá que rotar. Si decide usar este método, podría ayudar mostrar solo una parte del planeta para reducir la cantidad de objetos en movimiento que su ojo tiene que seguir:

mitad superior del planeta solamente

Si es libre de usar el mouse, siempre puede usar los clics del mouse para moverse. Al hacer clic en una ubicación, el jugador se moverá hacia ese punto y elegirá automáticamente la dirección más corta. Los círculos son "clics" y las flechas son la dirección más corta.

dirección más corta para hacer clic

Como una ventaja adicional, también es muy fácil traducir a controles móviles si deseas publicar tu juego como una aplicación también.

Charanor
fuente
3
Si va con el movimiento de la cámara, sugiero que se quede un poco atrás, si desea enfatizar la dirección hacia la que va y la velocidad. tu personaje parecería inclinado 5 o 10 grados en la dirección en que te mueves.
satibel
16

Cuando el personaje salga de la nave, reoriente la vista para que el personaje esté en la cima del planeta, y luego mueva la vista con el personaje mientras caminan. De esta manera, el personaje siempre está en la parte superior con respecto a la vista cuando se encuentra en un planeta, por lo que los controles izquierdo / derecho pueden mantenerse consistentes sin importar dónde aterrices.

ricksmt
fuente
3
Esto podría volverse muy desorientador si no tienes cuidado.
Beefster
11

Un enfoque (a menudo utilizado en juegos en tercera persona con movimiento basado en stick que también tienen cámaras no estáticas) es establecer el marco de referencia para el movimiento cada vez que comienza la entrada (en su caso, cuando se presiona la tecla) y mantener ese marco de movimiento hasta que la entrada termine (se suelta la tecla). Esto significa que la tecla "A" siempre movería el carácter "a la izquierda", sea lo que sea, en el sentido de las agujas del reloj si está en la parte inferior del círculo, en el sentido contrario a las agujas del reloj, hasta que se suelte la tecla.

Desafortunadamente, dado que estás limitado a un círculo, esta técnica aún se desmoronará cuando el personaje esté en o cerca de las extensiones extrema izquierda o derecha del círculo. Puede hacerlo funcionar simplemente eligiendo arbitrariamente en qué dirección ir, pero el usuario puede encontrarlo confuso. Posiblemente más confuso que simplemente seguir con el enfoque existente "A siempre es en sentido antihorario" que tiene ahora.

Josh
fuente
66
Cuando está a la derecha del círculo, S debe moverse en sentido horario.
user253751
1
No pensé en eso porque el OP solo mencionó dos claves, pero esa es una buena idea.
Josh
1
También es importante tener en cuenta los controles analógicos, donde este modelo de control se siente mejor.
Beefster
10

Le sugiero que eche un vistazo a un concepto similar, pero luego en 3d: Super Mario Galaxy.

captura de pantalla de super mario galaxy https://youtu.be/_8eJC4gIAm4?t=19m

En los movimientos cortos, el marco de referencia permanece igual, el universo no se mueve, se supera un cierto umbral, el universo se mueve a lo largo / se desplaza, de modo que el marco de referencia vuelve a estar en el medio.

Es posible que desee "desenfocar el movimiento" del universo cuando se mueve para que se vea más natural y los ojos no se centren en las partes móviles que cambian de posición.

Supongo que Nintendo invirtió bastante investigación para lograr que el juego sea lo más fluido posible y esto es lo que decidieron. Siempre me gusta ver lo que descubrieron las empresas más grandes, con la esperanza de que invirtieran algo en I + D para obtener la máxima comodidad y jugabilidad.

Tschallacka
fuente
7

Use A/ Dpara mover el personaje en la dirección hacia el punto más a la izquierda / derecha del planeta, respectivamente, y W/ Spara mover el personaje hacia los puntos más altos / más bajos.

De esta forma, el jugador siempre mueve al personaje en la misma dirección que el movimiento de entrada ; por ejemplo D, Ssiempre se mueve hacia la derecha, siempre se mueve hacia abajo, independientemente de la posición del personaje.

El juego puede seguir avanzando en la misma dirección del reloj mientras se mantiene presionada la tecla o detener al personaje en el punto límite. Si se detiene, no parece ser un gran problema: el jugador tiene un cuadrante completo en el que puede cambiar su entrada si quieren seguir en la misma dirección del reloj.

Además, una circular W- A- S- Do W- D- S- Apatrón de resultados de entrada en la circunnavegación del planeta, lo que parece bastante intuitivo.

Mantener presionada más de una tecla podría hacer que la tecla presionada más recientemente tenga prioridad, o podría usar un comportamiento más complejo, como tener ocho puntos limitantes.

AlliedEnvy
fuente
1
Esto es lo que iba a sugerir después de jugar Super Mario Odyssey . Sin embargo, debido al cambio en los esquemas de control, al principio no era muy intuitivo. Si es su esquema de control principal, tal vez eso no sea un problema
Kaiged
3

Este es uno de los dos problemas clásicos del "modelo mental" que sufren muchos juegos.

Cada jugador desarrolla un "modelo mental" de cómo los controles del juego se asignan a las acciones del juego. A medida que los juegos se han vuelto más y más similares en sus controles con el tiempo, las personas han comenzado a esperar que su modelo mental establecido se aplique a nuevos juegos, en lugar de desarrollar modelos separados para juegos separados. Lo cual estaría bien, excepto que no todos los jugadores tienen el mismo modelo mental de cómo deberían funcionar los controles.

Por ejemplo, el otro problema clásico del "modelo mental" es si presionar hacia arriba con un joystick (generalmente el stick analógico derecho de un gamepad) debería significar mirar hacia arriba , o si debería significar inclinarse hacia adelante (es decir, mirar hacia abajo ). Ninguno de los modelos es objetivamente correcto , pero la mayoría de los jugadores solo tienen uno de estos dos mapas posibles en la cabeza, y serán rechazados si un juego hace algo diferente de lo que ellos esperan.

Su pregunta es exactamente el mismo dilema; El problema del "modelo mental" aquí es si empujar hacia la derecha en un joystick de control significa "moverse hacia la derecha del personaje" (como en Resident Evil) o "moverse hacia el lado derecho de la pantalla" (como en Mario). O en este caso, "muévase en el sentido de las agujas del reloj" (como en Tempest, cuando usa una conversión tradicional de controles de paleta a joystick).

Todos los jugadores tendrán un modelo incorporado al que están acostumbrados y serán reacios a cambiar (o tendrán dificultades para cambiar). En cualquier problema de "modelo mental", tiene tres opciones sobre cómo manejar el problema:

  1. Como desarrollador, eliges qué modelo es el mejor para tu juego y lo usas. Ignore las quejas de las personas que tienen problemas con su modelo elegido; solo tendrán que adaptarse. Y si tu juego es lo suficientemente convincente, lo harán.
  2. Implementa ambos modelos posibles y deja que los jugadores elijan cuál quieren usar.
  3. Rediseñe el juego para asegurarse de que el mapeo de controles-> acciones del juego permanezca igual, sin importar qué modelo mental esté usando alguien.

La opción 3 ("rediseñar el juego para que los modelos mentales no entren en conflicto entre sí") en este caso significaría rotar la cámara con el jugador, por lo que el jugador siempre aparece en posición vertical en la pantalla. De esa manera, "derecha significa ir en sentido horario" y "derecha significa ir hacia el lado derecho de la pantalla" siempre están alineados; ya no hay conflicto y los jugadores no se confundirán dependiendo de su modelo mental de cómo se supone que funcionan los controles.

La opción 2 significaría implementar ambos estilos de control; uno donde empujar hacia la derecha lo lleva hacia el lado derecho de la pantalla, uno donde empujar hacia la derecha lo lleva hacia la derecha y tener una pantalla de opciones donde el jugador puede elegir qué estilo de control desea usar.

Cualquier elección aquí es válida; las diferentes opciones solo requieren diferentes cantidades de trabajo e imponen diferentes restricciones a tu juego. Si es realmente importante para usted que el jugador sea visible moviéndose en el lado "inferior" del planeta, ya sea por razones temáticas o artísticas, entonces no querrá usar la opción 3, y debe usar 1 o 2. Si no, entonces la opción 3 es probablemente la opción ideal.

Una nota de implementación menor para el estilo de control "empujar el joystick hacia la derecha significa moverse hacia el lado derecho de la pantalla": al implementar este estilo de control, debe hacerlo mapeando la dirección del joystick en una opción en sentido horario / antihorario, y luego mantenga esa misma decisión en sentido horario / antihorario hasta que el joystick se mueva nuevamente, incluso cuando el jugador se mueva hacia el lado inferior del planeta. Es decir, presionar hacia la derecha mientras está en la parte superior de un planeta, o hacia abajo mientras está en el lado derecho de un planeta, cada uno comenzaría a moverse en el sentido de las agujas del reloj, y el personaje continuará moviéndose en el sentido de las agujas del reloj incluso alrededor del fondo del planeta hasta que el jugador se mueva el joystick nuevamente, incluso si se mueven a una parte del planeta donde esa dirección del joystick ahora se interpretaría como una dirección diferente.

Esta técnica a menudo se llama "bloquear" el control del joystick, y generalmente se usa en juegos 3D cuando la cámara hace una rotación repentina (que no desea que el jugador cambie de dirección repentinamente), pero también puede ser útil aquí en un juego en 2D, si un movimiento de la cámara de otra manera haría que las entradas no modificadas del jugador de repente significaran algo diferente de lo que lo hacían antes.

Trevor Powell
fuente
1
¿Deslizar hacia abajo en el panel táctil de mi computadora portátil con dos dedos un desplazamiento hacia arriba o hacia abajo? Si estuviera en un dispositivo móvil, estaría arriba (porque mis dedos y la página están 'conectados') pero la misma dirección en un mouse estaría abajo ... Siento que esto se desconecta cada vez que uso una Mac ...
Draco18s
@ Draco18s ¡Ese es otro gran ejemplo! Windows considera que una entrada de desplazamiento hacia abajo significa mirar más hacia abajo en el documento , mientras que Apple considera que una entrada de desplazamiento hacia abajo significa mover el documento hacia abajo (lo que significa que vemos más hacia la parte superior del documento). Pero en los sistemas operativos de escritorio, Apple sabía que muchas personas tenían el otro modelo mental sobre cómo funcionan las entradas de desplazamiento, por lo que implementaron ambos y permitieron que cada usuario elija cuál prefiera. .
Trevor Powell el
Sí, puedes cambiarlo, solo conozco a tantas personas que lo tienen configurado de forma predeterminada ("mueve el documento hacia abajo"). Diablos, la computadora portátil con Windows que conseguí para trabajar hace un mes tenía eso por defecto. Lo apagué rápidamente (activé la función de "desplazamiento de borde" en su lugar, pero creo que lo volveré a apagar porque es demasiado lento: en serio, la altura total del área de desplazamiento se desplaza ... cinco líneas. ...)
Draco18s
2

Use W / S / A / D para la entrada (o arriba / abajo / izquierda / derecha). Trate la entrada como una dirección de 8 vías (incluidas las diagonales).

Luego mueva el jugador en la dirección válida (en sentido horario o antihorario) más cercana a la dirección presionada.

usuario253751
fuente
Creo que esta solución encajaría mejor con un joystick que con un teclado, pero sigue siendo una solución posible, sin embargo, podría tenerla como una opción, porque tener que mover los dedos en círculo en la lavadora puede ser bastante difícil para la mano si juegas más de una hora.
satibel
2

Una opción es, en lugar de definir la asociación entre la tecla y la dirección del movimiento, tener:

  • una tecla para avanzar "hacia adelante" (en la dirección de selección actual)
  • una tecla para "dar la vuelta" (cambiar de dirección)

Esto requiere que el personaje tenga una "dirección" claramente visible.

No estoy seguro de que realmente tenga mucho más sentido que otras opciones aquí, pero por si acaso ...

jcaron
fuente
1

Abajo es donde está la gravedad. Entonces, cuando el personaje jugador está en un planeta, gira la cámara junto con el movimiento del personaje jugador para que el personaje esté siempre en la parte superior del planeta.

Pero si bien esto facilita la navegación en el planeta, puede desorientar al jugador en relación con otros objetos celestes. Esta es una compensación que debes decidir por ti mismo.

Philipp
fuente
1

Si elige usar el movimiento en sentido horario / antihorario, hay varias cosas que puede hacer para que el sistema sea más fácil de intuir para sus jugadores.

Dale al personaje instrucciones distinguibles prominentes

Si el personaje es mitad azul y mitad rojo, entonces la orientación se vuelve fácil de recordar para los jugadores. En lugar de tener que identificar "en sentido horario" o "en sentido antihorario", los jugadores se mueven en la dirección azul o la dirección roja. Si el personaje siempre está orientado en una dirección (preferiblemente en el sentido de las agujas del reloj, de modo que el movimiento sea más intuitivo mientras está en posición vertical), es aún mejor, porque los hablantes de inglés (y cualquier otra persona con un lenguaje de izquierda a derecha) tienden naturalmente a asociarse 'derecho' con 'hacia adelante', reforzando la conexión entre los controles y la dirección del movimiento.

Nunca dejes que los personajes dejen de moverse

Mientras muevas a tu personaje, es fácil mantener la orientación en la que están tus controles. Después de todo, continuar moviéndote en la dirección en la que te mueves no toma ninguna acción, y cuando quieres invertir tu movimiento , solo hay otra clave para elegir. Solo cuando comienza a moverse nuevamente después de haberse detenido, se enfrenta a una elección. Cuanto más tiempo haga una pausa, más difícil será retomarlo en función de lo que estaba haciendo antes. Al reducir la frecuencia de pausa y la duración de la pausa, puede evitar que los jugadores olviden cómo moverse.

Lupus arcanista
fuente
0

Hay múltiples enfoques para esto.

1) Cómo abordaría esto tomaría secciones del planeta: los lados superior, izquierdo, derecho e inferior (más si es deseable). Y hazlo así después de que el usuario presione una dirección, el personaje seguirá esa dirección hasta que suelte ese botón. Entonces, si el personaje estaba en el lado izquierdo y el usuario presionó hacia arriba, entonces el personaje iría en sentido horario hasta el lanzamiento. De esta manera, no tiene que preocuparse por los cambios en el marco de referencia mientras el personaje se mueve, solo después.

2) Otra forma le gustaría cómo se acercan los "Amantes en el peligroso espacio-tiempo". Con un joystick, en lugar de tener el marco de referencia dependiendo de la superficie, lo tienen para que el ángulo del joystick sea el lugar deseado para que el "personaje" se detenga. Entonces su marco de referencia estaba en el centro de su "planeta". Digo carácter y planeta, pero tenían partes modulares de la nave en el exterior donde se determina a dónde van, es decir, en qué dirección apuntan los propulsores para mover la nave.

3) Cómo lo tienes diseñado ahora. También se puede acostumbrar un poco, pero nada que los jugadores no hayan visto antes. Sin embargo, podría editarlo para que parezca que el planeta está girando, por lo que la obra siempre está "en la cima".

Code Eyez
fuente