Wie kann ich benutzerfreundliche Bewegungen von Polarkoordinaten um einen Kreis ausführen?


23

Ich arbeite an einem 2D-Spiel, in dem Sie mit einem Schiff auf Planeten landen und das Schiff verlassen und herumlaufen können.

Diese Planeten sind sehr klein (denken Sie manchmal an einen Radius von 350 Pixel) und werden von der Seite gesehen. So können Sie den gesamten Planeten im Allgemeinen problemlos auf dem Bildschirm sehen.

Dies kann verwirrend sein. Hier ist ein Bild: Weltraumspiel

Ich benutze die Tasten A und D, um mich gegen den Uhrzeigersinn bzw. im Uhrzeigersinn zu bewegen. Das Problem ist, dass, wenn Sie sich auf der "Oberseite" des Planeten (obere Hälfte) befinden, dies Sinn macht: A bewegt sich nach links, D bewegt sich nach rechts. Wenn Sie sich jedoch auf dem "Boden" des Planeten befinden (untere Hälfte), bewegt sich A nach rechts und D nach links.

Irgendwelche Ideen, wie ich das benutzerfreundlicher machen kann?


21
Haben Sie Benutzer gefragt, ob sie dies verwirrend finden? Ich jedenfalls nicht - Sie drücken nach rechts, um Ihren Charakter nach rechts und nach links zu bewegen, um Ihren Charakter aus der Perspektive Ihres Charakters nach links zu bewegen . Dies ist viel besser, als beispielsweise die Knöpfe in der Mitte einer Runde zu wechseln (wenn Sie das vorhatten).
Charanor

Antworten:


38

Mein erster Vorschlag wäre, einfach bei A= DBewegung gegen den Uhrzeigersinn und = Bewegung im Uhrzeigersinn zu bleiben . Es ist nicht sehr verwirrend und ist so ziemlich die "Standard" - (dh häufigste) Wahl, wenn es um Orbitalbewegungen wie diese geht.

Eine andere Möglichkeit wäre, die Art und Weise zu ändern, in der sich Ihr Spiel bewegt. Anstatt den Spieler zu bewegen, wenn er sich auf einem Planeten befindet, können Sie stattdessen den Planeten drehen. Dies ist auch eine sehr häufige Wahl, kann aber verwirrend sein, wenn Sie mehrere Planeten auf dem Bildschirm haben, da sich alles außer dem Spieler drehen muss. Wenn Sie sich für diese Methode entscheiden, kann es hilfreich sein, nur einen Teil des Planeten anzuzeigen, um die Anzahl der sich bewegenden Objekte zu verringern, die Ihr Auge verfolgen muss:

Nur die obere Hälfte des Planeten

Wenn Sie die Maus frei benutzen können, können Sie immer Mausklicks benutzen, um sich zu bewegen. Wenn Sie auf eine Stelle klicken, bewegt sich der Spieler auf diese Stelle zu und wählt automatisch die kürzeste Richtung. Kreise sind "Klicks" und Pfeile sind die kürzeste Richtung.

kürzeste Klickrichtung

Als zusätzlichen Bonus ist es auch sehr einfach, in mobile Steuerelemente zu übersetzen, wenn Sie Ihr Spiel auch als App veröffentlichen möchten.


3
Wenn Sie mit der Kamerabewegung arbeiten, empfehle ich, sie ein wenig zurückbleiben zu lassen, wenn Sie die Richtung, in die Sie fahren, und die Geschwindigkeit betonen möchten. Ihr Charakter würde um 5 oder 10 Grad in die Richtung geneigt erscheinen, in die Sie sich bewegen.
Samstag,

16

Wenn der Charakter das Schiff verlässt, richten Sie die Ansicht neu aus, sodass sich der Charakter oben auf dem Planeten befindet, und bewegen Sie dann die Ansicht mit dem Charakter, während er herumläuft. Auf diese Weise ist der Charakter in Bezug auf die Ansicht auf einem Planeten immer im Vordergrund, sodass die linken / rechten Steuerelemente unabhängig davon, wo Sie landen, konsistent bleiben können.


3
Dies kann sehr verwirrend werden, wenn Sie nicht vorsichtig sind.
Beefster

11

Ein Ansatz (häufig in Spielen für Dritte mit stickbasierter Bewegung und nicht statischen Kameras) besteht darin, bei jedem Eingabebeginn (in Ihrem Fall beim Drücken der Taste) den Bezugsrahmen für die Bewegung festzulegen und beizubehalten dieser Bewegungsrahmen, bis die Eingabe endet (die Taste wird losgelassen). Dies bedeutet, dass die Taste "A" immer das Zeichen "nach links" bewegt, was auch immer das war - im Uhrzeigersinn, wenn es sich am unteren Rand des Kreises befindet, andernfalls gegen den Uhrzeigersinn - bis die Taste losgelassen wurde.

Da Sie sich auf einen Kreis beschränken, fällt diese Technik leider immer noch auseinander, wenn sich der Charakter in oder nahe der äußersten linken oder rechten Ausdehnung des Kreises befindet. Sie können es einfach zum Laufen bringen, indem Sie frei wählen, in welche Richtung es gehen soll, aber der Benutzer kann es verwirrend finden. Möglicherweise verwirrender ist, dass Sie jetzt immer gegen den Uhrzeigersinn vorgehen, wenn Sie einfach an dem vorhandenen "A" festhalten.


6
Wenn Sie sich rechts vom Kreis befinden, sollte sich S im Uhrzeigersinn bewegen.
user253751

1
Daran habe ich nicht gedacht, weil das OP nur zwei Schlüssel erwähnte, aber das ist eine gute Idee.
Josh

1
Es ist auch wichtig, analoge Knüppelsteuerungen zu berücksichtigen, bei denen sich dieses Steuerungsmodell am besten anfühlt.
Beefster

10

Ich schlage vor, Sie werfen einen Blick auf ein ähnliches Konzept, aber dann in 3D: Super Mario Galaxy.

Super Mario Galaxy Screenshot https://youtu.be/_8eJC4gIAm4?t=19m

Bei kurzen Bewegungen bleibt der Referenzrahmen gleich, das Universum bewegt sich nicht, überschreitet eine bestimmte Schwelle, mit der sich das Universum bewegt / verschiebt, sodass der Referenzrahmen wieder in der Mitte liegt.

Möglicherweise möchten Sie das Universum beim Bewegen "verwischen", damit es natürlicher aussieht und die Augen sich nicht auf die sich bewegenden Teile konzentrieren, die ihre Positionen verschieben.

Ich gehe davon aus, dass Nintendo eine Menge Forschung investiert hat, um das Spiel so reibungslos wie möglich zu gestalten, und darauf haben sie sich festgelegt. Ich schaue immer gerne nach, was die größeren Unternehmen herausgefunden haben, in der Hoffnung, dass sie etwas in Forschung und Entwicklung investiert haben, um maximalen Komfort und Spielbarkeit zu erzielen.


7

Verwenden Sie A/ D, um das Zeichen in die Richtung zum äußersten linken / äußersten rechten Punkt des Planeten zu bewegen , und W/ S, um das Zeichen zu den äußersten oberen / untersten Punkten zu bewegen.

Auf diese Weise bewegt der Spieler den Charakter immer in die gleiche Richtung wie die Eingabebewegung - z. B. Dbewegt er sich immer nach rechts, Sbewegt sich immer nach unten, unabhängig von der Position des Charakters.

Das Spiel könnte entweder in der gleichen Uhrrichtung weiterlaufen, während die Taste gedrückt gehalten wird, oder den Charakter am Grenzpunkt anhalten. Wenn es aufhört, scheint es kein großes Problem zu sein - der Spieler hat einen vollen Quadranten, in dem er seine Eingabe ändern kann, wenn er in der gleichen Taktrichtung weitermachen möchte.

Zusätzlich wird ein Kreis W- A- S- Doder W- D- S- AMuster der Eingangs Ergebnisse in Umrundung des Planeten, der recht intuitiv scheint.

Wenn Sie mehr als eine Taste gedrückt halten, hat möglicherweise nur die zuletzt gedrückte Taste Vorrang, oder Sie verwenden ein komplexeres Verhalten, z. B. acht Grenzpunkte.


1
Das wollte ich vorschlagen, nachdem ich Super Mario Odyssey gespielt hatte . Aufgrund der Änderung der Kontrollschemata war dies jedoch zunächst nicht intuitiv. Wenn es Ihr Hauptkontrollschema ist, ist das vielleicht kein Problem
Kaiged

3

Dies ist eines von zwei klassischen "mentalen Modell" -Problemen, unter denen viele Spiele leiden.

Jeder Spieler entwickelt ein "mentales Modell" dafür, wie Spielkontrollen Spielaktionen zuordnen. Da sich die Steuerung von Spielen im Laufe der Zeit immer mehr ähnelt, erwarten die Menschen, dass ihr etabliertes mentales Modell auf neue Spiele angewendet wird, anstatt separate Modelle für separate Spiele zu entwickeln. Das wäre in Ordnung, außer dass nicht jeder Spieler das gleiche mentale Modell dafür hat, wie Kontrollen funktionieren sollten.

Zum Beispiel ist das andere klassische „mentales Modell“ Problem , ob auf einem Joystick nach oben drücken ( in der Regel des rechte Analog - Stick von einem Gamepad) bedeuten sollte aufzuzublicken , oder ob es bedeutet , nach vorne kippen (dh: auf der Suche nach unten ). Keines der beiden Modelle ist objektiv richtig , aber die meisten Spieler behalten nur eine dieser beiden möglichen Zuordnungen im Kopf und werden abgewiesen, wenn ein Spiel etwas anderes tut, als sie persönlich erwartet haben.

Ihre Frage ist genau das gleiche Dilemma; Das "mentale Modell" ist hier die Frage, ob das Drücken eines Steuerknüppels nach rechts "nach rechts" (wie in Resident Evil) oder "nach rechts" (wie in Mario) bedeutet. Oder in diesem Fall "im Uhrzeigersinn bewegen" (wie bei Tempest, wenn eine herkömmliche Konvertierung von Paddle- zu Joystick-Steuerelementen verwendet wird).

Jeder Spieler hat ein eingebautes Modell, an das er gewöhnt ist und das er nur ungern ändern möchte (oder Schwierigkeiten hat, es zu ändern). In einem solchen "mentalen Modell" -Problem haben Sie drei Möglichkeiten, wie Sie mit dem Problem umgehen können:

  1. Als Entwickler wählen Sie das Modell aus, das für Ihr Spiel am besten geeignet ist, und verwenden es. Ignorieren Sie die Beschwerden von Personen, die Probleme mit Ihrem gewählten Modell haben. Sie müssen sich nur anpassen. Und wenn Ihr Spiel zwingend genug ist, werden sie.
  2. Implementieren Sie beide möglichen Modelle und lassen Sie die Spieler auswählen, welches sie verwenden möchten.
  3. Entwerfen Sie das Spiel neu, um sicherzustellen, dass die Zuordnung von Steuerelementen zu Spielaktionen gleich bleibt, unabhängig davon, welches mentale Modell jemand verwendet.

Option 3 ("Neugestaltung des Spiels, damit die mentalen Modelle nicht in Konflikt geraten") würde in diesem Fall bedeuten, die Kamera mit dem Spieler zu drehen, sodass der Spieler immer aufrecht auf dem Bildschirm erscheint. Auf diese Weise sind "rechts" bedeutet "im Uhrzeigersinn" und "rechts" bedeutet "zur rechten Seite des Bildschirms" immer ausgerichtet. Es gibt keinen Konflikt mehr und die Spieler werden nicht verwirrt, abhängig von ihrem mentalen Modell, wie Kontrollen funktionieren sollen.

Option 2 würde bedeuten, beide Arten der Kontrolle zu implementieren. Wenn Sie nach rechts drücken, gelangen Sie zur rechten Seite des Bildschirms. Wenn Sie nach rechts drücken, gelangen Sie im Uhrzeigersinn. Auf dem Optionsbildschirm kann der Spieler auswählen, welchen Steuerungsstil er verwenden möchte.

Jede Wahl hier ist gültig; Die verschiedenen Optionen erfordern nur einen unterschiedlichen Arbeitsaufwand und stellen unterschiedliche Anforderungen an Ihr Spiel. Wenn es für Sie wirklich wichtig ist, dass der Spieler sichtbar ist, wenn er sich aus thematischen oder künstlerischen Gründen auf der "unteren" Seite des Planeten bewegt, sollten Sie Option 3 nicht verwenden und 1 oder 2 verwenden nicht, dann ist Option 3 wahrscheinlich die ideale Wahl.

Ein kleiner Implementierungshinweis für das Steuerelement "Den Joystick nach rechts schieben bedeutet, dass Sie sich zur rechten Seite des Bildschirms bewegen": Wenn Sie dieses Steuerelement implementieren, sollten Sie die Joystick-Richtung im Uhrzeigersinn / gegen den Uhrzeigersinn abbilden und dann Halten Sie die gleiche Entscheidung im / gegen den Uhrzeigersinn, bis sich der Joystick wieder bewegt, auch wenn sich der Spieler zur Unterseite des Planeten bewegt. Das heißt, wenn Sie rechts oben auf einem Planeten oder unten rechts auf einem Planeten drücken, bewegt sich der Charakter im Uhrzeigersinn und im Uhrzeigersinn, bis sich der Spieler bewegt den Joystick erneut, selbst wenn sie sich zu einem Teil des Planeten bewegen, wo diese Joystick-Richtung nun als eine andere Richtung interpretiert würde.

Diese Technik wird oft als "Sperren" der Joystick-Steuerung bezeichnet und wird im Allgemeinen in 3D-Spielen verwendet, wenn die Kamera eine plötzliche Drehung ausführt (die nicht dazu führen soll, dass der Player plötzlich die Richtung ändert), kann aber auch hier in nützlich sein ein 2D-Spiel, wenn eine Kamerabewegung ansonsten dazu führen würde, dass die unveränderten Eingaben des Spielers plötzlich etwas anderes bedeuten als zuvor.


1
Wird mit zwei Fingern auf dem Touchpad meines Laptops nach oben oder nach unten geblättert? Wenn ich mich auf einem mobilen Gerät befände, wäre es nach oben gerichtet (weil meine Finger und die Seite "verbunden" sind), aber die gleiche Richtung auf einer Maus wäre nach unten gerichtet ... Ich fühle diese Trennung jedes Mal, wenn ich einen Mac benutze ...
Draco18s

@ Draco18s Das ist ein weiteres großartiges Beispiel! Windows geht davon aus, dass bei einer Bildlaufeingabe nach unten das Dokument weiter unten angezeigt wird , während Apple bei einer Bildlaufeingabe nach unten das Dokument selbst nach unten verschoben hat (was bedeutet, dass wir mehr am oberen Rand des Dokuments sehen). Unter Desktop-Betriebssystemen wusste Apple jedoch, dass viele Leute das andere Modell für die Funktionsweise von Bildlaufeingaben hatten. Daher implementierten sie beide und ließen jeden Benutzer auswählen, was sie bevorzugen. .
Trevor Powell

Ja, Sie können es ändern, ich kenne nur so viele Leute, die es standardmäßig eingerichtet haben ("verschiebe das Dokument nach unten"). Verdammt, der Windows-Laptop, den ich vor einem Monat zur Arbeit bekam, hatte das als Standard. Ich habe es ganz schnell ausgeschaltet (stattdessen habe ich die Funktion "Bildlauf am Rand" aktiviert, aber ich denke, ich werde sie wieder deaktivieren, weil sie zu langsam ist: Ernsthaft, die volle Höhe des Bildlaufbereichs rollt ... fünf Zeilen. ...)
Draco18s

2

Verwenden Sie W / S / A / D zur Eingabe (oder nach oben / unten / links / rechts). Behandeln Sie die Eingabe als 8-Wege-Richtung (einschließlich Diagonalen).

Bewegen Sie den Player dann in die Richtung, die der gedrückten Richtung am nächsten liegt (im oder gegen den Uhrzeigersinn).


Ich denke, diese Lösung passt besser zu einem Joystick als zu einer Tastatur, aber es ist immer noch eine mögliche Lösung, ich hätte sie jedoch zur Wahl, weil es ziemlich hart für die Hand sein kann, wenn man die Finger in einem Kreis auf der Wespe bewegen muss, wenn man spielt mehr als eine Stunde.
Samstag,

2

Eine Möglichkeit besteht darin, anstelle der Zuordnung zwischen Schlüssel und Bewegungsrichtung Folgendes zu definieren:

  • eine Taste, um "vorwärts" zu gehen (in der aktuellen Auswahlrichtung)
  • ein Schlüssel zum "Wenden" (Richtung wechseln)

Dies setzt voraus, dass der Charakter eine deutlich sichtbare "Richtung" hat.

Ich bin mir nicht sicher, ob das wirklich viel sinnvoller ist als andere Optionen, aber nur für den Fall ...


1

Unten ist die Schwerkraft. Wenn sich der Spielercharakter auf einem Planeten befindet, drehen Sie die Kamera zusammen mit der Bewegung des Spielercharakters, sodass sich der Charakter immer auf dem Planeten befindet.

Dies erleichtert zwar die Navigation auf dem Planeten, kann den Spieler jedoch relativ zu anderen Himmelsobjekten desorientieren. Dies ist ein Kompromiss, den Sie selbst festlegen müssen.


1

Wenn Sie sich für die Bewegung im / gegen den Uhrzeigersinn entscheiden, können Sie eine Reihe von Maßnahmen ergreifen, um das System für Ihre Spieler intuitiver zu gestalten.

Geben Sie dem Charakter markante unterscheidbare Richtungen

Wenn der Charakter halb blau und halb rot ist, kann sich der Spieler leicht an die Ausrichtung erinnern. Anstatt "im Uhrzeigersinn" oder "gegen den Uhrzeigersinn" identifizieren zu müssen, bewegen sich die Spieler entweder in die blaue oder in die rote Richtung. Wenn der Charakter immer in eine Richtung zeigt (vorzugsweise im Uhrzeigersinn, damit die Bewegung im aufrechten Zustand am intuitivsten ist), ist dies sogar noch besser, da Englisch sprechende Personen (und alle anderen Personen mit einer Sprache von links nach rechts) naturgemäß dazu neigen, mit "rechts" zu assoziieren "Vorwärts", wodurch die Verbindung zwischen den Bedienelementen und der Bewegungsrichtung verstärkt wird.

Lass die Charaktere niemals aufhören, sich zu bewegen

Solange Sie Ihren Charakter bewegen, ist es einfach, die Ausrichtung Ihrer Steuerelemente beizubehalten. Wenn Sie sich weiterhin in die Richtung bewegen, in die Sie sich bewegen, werden Sie keine Maßnahmen ergreifen, und wenn Sie Ihre Bewegung umkehren möchten , es gibt nur einen anderen Schlüssel zur Auswahl. Erst wenn Sie sich nach dem Stoppen wieder in Bewegung setzen, stehen Sie vor einer Wahl. Je länger Sie eine Pause einlegen, desto schwieriger wird es sein, anhand Ihrer vorherigen Aktivitäten wieder zu beginnen. Indem Sie die Pausenfrequenz und die Pausenlänge reduzieren, können Sie verhindern, dass Spieler vergessen, wie sie sich bewegen sollen.


0

Hierfür gibt es mehrere Ansätze.

1) Wie ich das angehen würde, würde Abschnitte des Planeten in Anspruch nehmen: die obere, linke, rechte und untere Seite (mehr, wenn erwünscht). Und nachdem der Benutzer eine Richtung gedrückt hat, wird der Charakter diese Richtung beibehalten, bis er diesen Knopf loslässt. Wenn sich der Charakter also auf der linken Seite befindet und der Benutzer gedrückt wird, wird der Charakter bis zur Freigabe im Uhrzeigersinn ausgeführt. Auf diese Weise müssen Sie sich keine Gedanken mehr über Änderungen im Referenzrahmen machen, während sich der Charakter bewegt, sondern erst danach.

2) Ein anderer Weg möchte, wie "Liebhaber in gefährlicher Raum-Zeit" es angehen. Mit einem Joystick, anstatt den Bezugsrahmen abhängig von der Oberfläche zu haben, haben sie ihn so, dass der Winkel des Joysticks der gewünschte Punkt war, an dem "Charakter" anhalten sollte. Ihr Bezugsrahmen lag also im Zentrum ihres "Planeten". Ich sage Charakter und Planet, aber sie hatten modulare Schiffsteile an der Außenseite, wo Sie bestimmen, wohin sie gehen, dh in welche Richtung die Triebwerke zeigen, um das Schiff zu bewegen.

3) Wie Sie es jetzt entworfen haben. Es kann ein wenig in Anspruch nehmen, aber nichts, was die Spieler noch nicht gesehen haben. Sie können es jedoch so bearbeiten, dass der Planet sich stattdessen zu drehen scheint, sodass das Spiel immer "oben" ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.