Jak wykonać przyjazny dla użytkownika ruch współrzędnych biegunowych wokół koła?

23

Pracuję nad grą 2D, w której lądujesz na planetach ze statkiem i możesz wyjść ze statku i spacerować.

Te planety są bardzo małe (czasami myślą o promieniu ~ 350 pikseli) i są widziane z boku. Więc ogólnie możesz łatwo zobaczyć całą planetę na ekranie.

Może to być mylące, więc oto zdjęcie: gra kosmiczna

Używam klawiszy A i D, aby poruszać się odpowiednio w lewo i w prawo. Problem polega na tym, że jeśli jesteś na „górze” planety (górna połowa), ma to sens: A przesuwa się w lewo, D przesuwa się w prawo. Jeśli jednak znajdujesz się na „dnie” planety (dolna połowa), A przesuwa się w prawo, a D w lewo.

Wszelkie pomysły na to, jak mogę uczynić to bardziej przyjaznym dla użytkownika?

MCMastery
źródło
21
Czy zapytałeś użytkowników, czy uważają to za mylące? Ja na pewno nie - naciskasz w prawo, aby przesunąć swoją postać w prawo i w lewo, aby przenieść swoją postać w lewo z perspektywy postaci . Jest to o wiele lepsze niż, powiedzmy, zmiana przycisków w środku tury (jeśli planujesz to zrobić).
Charanor

Odpowiedzi:

38

Moją pierwszą sugestią byłoby po prostu trzymanie się A= Druch w lewo i = ruch w prawo. Nie jest to bardzo mylące i jest właściwie „standardowym” (tj. Najczęściej stosowanym) wyborem, jeśli chodzi o ruch orbitalny w ten sposób.

Innym sposobem może być zmiana sposobu poruszania się gry. Zamiast przesuwać gracza, gdy znajduje się on na planecie, możesz zamiast tego obrócić planetę. Jest to również bardzo powszechny wybór, ale może dezorientować, jeśli masz wiele planet na ekranie, ponieważ wszystko oprócz gracza będzie musiało się obracać. Jeśli zdecydujesz się użyć tej metody, pomocne może być wyświetlenie tylko części planety, aby zmniejszyć liczbę poruszających się obiektów, które twoje oko musi śledzić:

top half of planet only

Jeśli możesz swobodnie korzystać z myszy, zawsze możesz poruszać się po kliknięciach myszy. Kliknięcie lokalizacji spowoduje, że gracz zbliży się do tego punktu i automatycznie wybierze najkrótszy kierunek. Kręgi to „kliknięcia”, a strzałki to najkrótszy kierunek.

shortest direction for click

Dodatkową zaletą jest również bardzo łatwe przetłumaczenie na sterowanie mobilne, jeśli chcesz opublikować swoją grę jako aplikację.

Charanor
źródło
3
Jeśli podążasz za ruchem kamery, sugeruję, aby pozostawić nieco w tyle, jeśli chcesz podkreślić kierunek, w którym się poruszasz i prędkość. Twoja postać wydaje się przechylona o 5 lub 10 stopni w kierunku, w którym się poruszasz.
satibel
16

Kiedy postać wydostanie się ze statku, zmień orientację widoku, tak aby postać znajdowała się na szczycie planety, a następnie przesuń widok wraz z postacią, idąc wokół. W ten sposób postać jest zawsze na szczycie w odniesieniu do widoku na planecie, więc lewy / prawy element sterujący mogą pozostać spójne bez względu na to, gdzie wylądujesz.

ricksmt
źródło
3
To może stać się bardzo dezorientujące, jeśli nie będziesz ostrożny.
Beefster
11

Jednym podejściem (często stosowanym w grach trzeciej osoby z ruchem opartym na drążku, które również mają kamery niestatyczne) jest ustalenie punktu odniesienia dla ruchu za każdym razem, gdy rozpoczyna się wprowadzanie danych (w twoim przypadku, gdy klawisz jest wciśnięty) i trzymaj ramka ruchu do momentu zakończenia wprowadzania danych (klawisz zostanie zwolniony). Oznacza to, że klawisz „A” zawsze przesuwa znak „w lewo”, cokolwiek to było - zgodnie z ruchem wskazówek zegara, jeśli znajduje się na dole koła, w przeciwnym razie przeciwnie do ruchu wskazówek zegara - do momentu zwolnienia klawisza.

Niestety, ponieważ jesteś ograniczony do koła, ta technika nadal będzie się rozpadać, gdy postać znajdzie się w skrajnym lewym lub prawym skraju koła lub w jej pobliżu. Możesz sprawić, by działało to po prostu wybierając arbitralnie, w którą stronę pójść, ale dla użytkownika może to być mylące. Być może bardziej mylące niż zwykłe trzymanie się istniejącego podejścia „A jest zawsze przeciwne do ruchu wskazówek zegara”.

Josh
źródło
6
Po prawej stronie okręgu S powinien poruszać się zgodnie z ruchem wskazówek zegara.
user253751
1
Nie myślałem o tym, ponieważ OP wspomniał tylko o dwóch kluczach, ale to dobry pomysł.
Josh
1
Ważne jest również rozważenie analogowych elementów sterujących, w których ten model sterowania jest najlepszy.
Beefster
10

Proponuję przyjrzeć się podobnej koncepcji, ale potem w 3d: Super mario galaxy.

zrzut ekranu super mario galaxy https://youtu.be/_8eJC4gIAm4?t=19m

Przy krótkich ruchach ramka odniesienia pozostaje taka sama, wszechświat się nie porusza, przekracza pewien próg, wszechświat porusza się wzdłuż / przesuwa się, więc ramka odniesienia jest z powrotem na środku.

Podczas ruchu możesz chcieć „rozmazać ruch” wszechświata, aby wyglądał bardziej naturalnie, a oczy nie będą koncentrować się na pozycjach przesuwania ruchomych części.

Zakładam, że Nintendo zainwestowało sporo badań, aby gra była jak najbardziej płynna i na tym właśnie się zdecydowali. Zawsze lubię patrzeć na to, co odkryły większe firmy, mając nadzieję, że zainwestowały coś w badania i rozwój, aby uzyskać maksymalny komfort i grywalność.

Tschallacka
źródło
7

Użyj A/, Daby przesunąć postać w kierunku odpowiednio do skrajnego lewego / skrajnego prawego punktu planety, i W/ Sdo przesunięcia postaci w kierunku najwyższych / najniższych punktów.

W ten sposób gracz zawsze porusza postacią w tym samym kierunku, co ruch wejściowy - np. DZawsze porusza się w prawo, Szawsze porusza się w dół, niezależnie od pozycji postaci.

Gra może albo iść w tym samym kierunku zegara, gdy klawisz jest wciśnięty, albo zatrzymać postać w punkcie granicznym. Jeśli się zatrzyma, nie wydaje się to dużym problemem - gracz ma pełny kwadrant, w którym może zmienić swój wkład, jeśli chce iść dalej w tym samym kierunku zegara.

Dodatkowo okrągły W- A- S- Dlub W- D- S- Awzór wprowadzania powoduje opłynięcie planety, co wydaje się dość intuicyjne.

Przytrzymanie więcej niż jednego klawisza może spowodować, że ostatnio naciśnięty klawisz będzie miał pierwszeństwo, lub możesz zastosować bardziej złożone zachowanie, takie jak posiadanie ośmiu punktów granicznych.

AlliedEnvy
źródło
1
Właśnie to zasugerowałem po graniu w Super Mario Odyssey . Jednak ze względu na zmianę schematów kontroli na początku było to dość nieintuicyjne. Jeśli to jest twój główny schemat kontroli, być może nie będzie problemu
Kaiged
3

Jest to jeden z dwóch klasycznych problemów związanych z „modelem mentalnym” wielu gier.

Każdy gracz opracowuje „model mentalny” określający sposób, w jaki gra steruje mapowaniem działań. Ponieważ gry z czasem stają się coraz bardziej podobne, ludzie zaczęli oczekiwać, że ustalony model mentalny będzie miał zastosowanie do nowych gier, zamiast opracowywać osobne modele dla oddzielnych gier. Co byłoby w porządku, z tym wyjątkiem, że nie każdy gracz ma ten sam model mentalny tego, jak powinny działać kontrole.

Na przykład innym klasycznym problemem „modelu mentalnego” jest to, czy naciśnięcie joysticka (zazwyczaj prawego drążka analogowego gamepada) powinno oznaczać patrzenie w górę , czy też oznaczać przechylenie do przodu (tj. Patrzenie w dół ). Żaden model nie ma obiektywnie racji , ale większość graczy trzyma tylko jedno z tych dwóch możliwych mapowań i zostanie odrzucona, jeśli gra zrobi coś innego, niż mogliby się spodziewać.

Twoje pytanie jest dokładnie tym samym dylematem; kwestią „modelu mentalnego” jest tutaj to, czy pchnięcie w prawo na drążku sterującym oznacza „przesuń się w prawo postaci” (jak w Resident Evil), czy „przesuń się w kierunku prawej strony ekranu” (jak w Mario). Lub w tym przypadku „poruszaj się zgodnie z ruchem wskazówek zegara” (jak w Tempest, gdy używasz tradycyjnej konwersji z wiosła na sterowanie joystickiem).

Każdy gracz będzie miał wbudowany model, do którego jest przyzwyczajony, do którego niechętnie się zmieni (lub będzie miał trudności ze zmianą). W każdym takim „modelu mentalnym” masz trzy opcje rozwiązania tego problemu:

  1. Jako twórca wybierasz, który model jest najlepszy dla twojej gry i używasz go. Zignoruj ​​skargi osób, które mają problemy z wybranym modelem; będą musieli się tylko dostosować. A jeśli twoja gra jest wystarczająco przekonująca, będą.
  2. Zaimplementuj oba możliwe modele i pozwól graczom wybrać, którego chcą użyć.
  3. Przeprojektuj grę, aby mieć pewność, że odwzorowanie kontroli -> działania gry pozostanie takie samo, bez względu na to, jakiego modelu mentalnego używa ktoś.

Opcja 3 („przeprojektowanie gry, aby modele mentalne nie kolidowały ze sobą”) w tym przypadku oznaczałaby obrócenie kamery z odtwarzaczem, dzięki czemu gracz zawsze pojawia się pionowo na ekranie. W ten sposób „prawo oznacza iść w prawo” i „prawo oznacza iść w kierunku prawej strony ekranu” są zawsze w jednej linii; nie ma już konfliktu i gracze nie będą zdezorientowani w zależności od modelu mentalnego tego, jak powinny działać kontrole.

Wariant 2 oznaczałby wdrożenie obu stylów kontroli; jeden, w którym przesuwanie w prawo prowadzi do prawej strony ekranu, jeden w którym popychanie w prawo prowadzi w kierunku zgodnym z ruchem wskazówek zegara, i ma ekran opcji, w którym gracz może wybrać styl sterowania, którego chce użyć.

Każdy wybór tutaj jest ważny; różne opcje wymagają tylko różnych nakładów pracy i nakładają różne ograniczenia na grę. Jeśli dla Ciebie bardzo ważne jest, aby gracz był widoczny, poruszając się po „dolnej” stronie planety, z powodów tematycznych lub artystycznych, to nie będziesz chciał używać opcji 3 i powinieneś użyć 1 lub 2. Jeśli nie, to opcja 3 jest prawdopodobnie idealnym wyborem.

Niewielka uwaga dotycząca implementacji stylu „popchnięcie joysticka w prawo oznacza przejście w kierunku prawej strony ekranu”: Podczas implementacji tego stylu sterowania należy to zrobić, mapując kierunek joysticka w kierunku zgodnym z ruchem wskazówek zegara / przeciwnie do ruchu wskazówek zegara, a następnie zachowaj tę samą decyzję zgodnie z ruchem wskazówek zegara / przeciwnie do ruchu wskazówek zegara, dopóki joystick nie poruszy się ponownie, nawet gdy gracz porusza się po dolnej stronie planety. Oznacza to, że naciśnięcie w prawo na szczycie planety lub w dół po prawej stronie planety spowoduje, że postać zacznie poruszać się zgodnie z ruchem wskazówek zegara, a następnie postać będzie poruszać się zgodnie z ruchem wskazówek zegara, nawet wokół dna planety, aż gracz się poruszy dżojstik ponownie, nawet jeśli przeniosą się do części planety, gdzie ten kierunek joysticka byłby teraz interpretowany jako inny kierunek.

Ta technika jest często nazywana „blokowaniem” joysticka i jest ogólnie stosowana w grach 3D, gdy kamera wykonuje nagły obrót (którego nie chcesz, aby gracz nagle zmienił kierunek), ale może być również przydatny w tym przypadku gra 2D, jeśli ruch kamery sprawiłby, że niezmodyfikowane dane wejściowe gracza nagle oznaczałyby coś innego niż wcześniej.

Trevor Powell
źródło
1
Czy przesuwanie dwoma palcami po tabliczce dotykowej laptopa jest przewijaniem w górę, czy przewijaniem w dół? Gdybym był na urządzeniu mobilnym, byłby w górze (ponieważ moje palce i strona są „połączone”), ale ten sam kierunek myszy byłby w dół ... Czuję to rozłączanie za każdym razem, gdy używam komputera Mac ...
Draco18s
@ Draco18s To kolejny świetny przykład! Windows uważa, że ​​przewijanie w dół oznacza spojrzenie w dół dokumentu , podczas gdy Apple uważa, że ​​przewijanie w dół oznacza przesuwanie samego dokumentu w dół (co oznacza, że ​​widzimy więcej w kierunku góry dokumentu). Ale na komputerowych systemach operacyjnych Apple wiedział, że wielu ludzi miało inny model mentalny, w jaki sposób działają przewijane dane wejściowe, więc wdrożyli oba i pozwolili każdemu użytkownikowi wybrać, który wolą. .
Trevor Powell
Tak, możesz to zmienić, po prostu znam tyle osób, które domyślnie go skonfigurowały („przenieś dokument w dół”). Heck, laptop z systemem Windows, który dostałem do pracy miesiąc temu, miał to domyślnie. Wyłączyłem go szybko w prawo (zamiast tego włączyłem funkcję „przewijania krawędzi”, ale myślę, że wyłączę go ponownie, ponieważ jest zbyt wolny: poważnie, pełna wysokość obszaru przewijania przewija się… pięć linii. ...)
Draco18s,
2

Użyj W / S / A / D jako wejścia (lub góra / dół / lewo / prawo). Traktuj wejście jako kierunek 8-kierunkowy (w tym przekątne).

Następnie przesuń odtwarzacz w dowolnym prawidłowym kierunku (zgodnie z ruchem wskazówek zegara lub przeciwnie do kierunku ruchu wskazówek zegara), który jest najbliższy kierunkowi, który jest wciśnięty.

użytkownik253751
źródło
Myślę, że to rozwiązanie lepiej pasowałoby joystickiem niż klawiaturą, ale nadal jest to możliwe rozwiązanie, jednak miałbym to jako wybór, ponieważ konieczność poruszania palcami po kółku na wasdzie może być dość trudna, jeśli grasz więcej niż godzina.
satibel
2

Jedną z opcji jest zamiast zdefiniowania związku między kluczem a kierunkiem ruchu, aby mieć:

  • jeden klawisz, aby przejść „do przodu” (w aktualnie wybranym kierunku)
  • jeden klawisz do „odwrócenia” (zmiana kierunku)

Wymaga to od postaci wyraźnego „kierunku”.

Nie jestem pewien, czy to naprawdę ma o wiele większy sens niż inne opcje tutaj, ale na wszelki wypadek ...

Jcaron
źródło
1

W dół znajduje się grawitacja. Więc gdy postać gracza znajduje się na planecie, obracaj kamerę wraz z ruchem postaci gracza, aby postać zawsze znajdowała się na planecie.

Ale chociaż ułatwia to nawigację na planecie, może dezorientować gracza względem innych obiektów niebieskich. Jest to kompromis, na który musisz sam zdecydować.

Philipp
źródło
1

Jeśli zdecydujesz się na ruch zgodnie z ruchem wskazówek zegara / przeciwnie do ruchu wskazówek zegara, istnieje wiele rzeczy, które możesz zrobić, aby system był bardziej intuicyjny dla graczy.

Podaj bohaterowi wyróżniające się kierunki

Jeśli postać jest w połowie niebieska, a w połowie czerwona, orientacja staje się łatwa do zapamiętania przez graczy. Zamiast identyfikować „zgodnie z ruchem wskazówek zegara” lub „przeciwnie do ruchu wskazówek zegara”, gracze poruszają się w kierunku niebieskim lub czerwonym. Jeśli postać zawsze skierowana jest w jednym kierunku (najlepiej w kierunku zgodnym z ruchem wskazówek zegara, aby ruch był najbardziej intuicyjny w pozycji pionowej), jest to nawet lepsze, ponieważ osoby posługujące się językiem angielskim (i każdy inny użytkownik posługujący się językiem od lewej do prawej) w naturalny sposób kojarzą „prawo” z „do przodu”, wzmacniając połączenie między elementami sterującymi a kierunkiem ruchu.

Nigdy nie pozwól, aby postacie przestały się poruszać

Tak długo, jak poruszasz swoją postacią, łatwo jest utrzymać orientację, w której znajdują się twoje elementy sterujące. W końcu kontynuowanie ruchu w kierunku, w którym się poruszasz, nie powoduje żadnych działań, a kiedy chcesz odwrócić ruch , jest tylko jeden inny klucz do wyboru. Dopiero gdy znów zaczniesz się ruszać po zatrzymaniu, stajesz przed wyborem. Im dłuższa pauza, tym trudniej będzie ją podnieść na podstawie tego, co robiłeś wcześniej. Zmniejszając częstotliwość pauz i długości pauz, możesz powstrzymać graczy przed zapominaniem, jak się poruszać.

Toczeń Arcanist
źródło
0

Istnieje wiele podejść do tego.

1) Jak do tego podejdę, zajmę sekcje planety: górną, lewą, prawą i dolną (więcej, jeśli to pożądane). I niech tak będzie, gdy użytkownik naciśnie kierunek, postać będzie podążać w tym kierunku, dopóki nie zwolni tego przycisku. Więc jeśli postać znajdowała się po lewej stronie, a użytkownik naciskał, to postać poruszałaby się zgodnie z ruchem wskazówek zegara do zwolnienia. W ten sposób nie musisz się martwić o zmiany w układzie odniesienia, gdy postać się porusza, dopiero po.

2) Innym sposobem byłoby zbliżenie się do „Kochanków w niebezpiecznej czasoprzestrzeni”. Za pomocą joysticka zamiast ramy odniesienia w zależności od powierzchni, mają ją tak, że kąt, na którym drążek radości był pożądanym miejscem, w którym „postać” się zatrzyma. Tak więc ich układ odniesienia znajdował się w centrum ich „planety”. Mówię o postaci i planecie, ale na zewnątrz miały modułowe części statku, w których określasz, dokąd zmierzają, tj. W którym kierunku są skierowane pędniki, aby przesunąć statek.

3) Jak masz to teraz zaprojektowane. Może się trochę przydać, ale gracze jeszcze go nie widzieli. Możesz go jednak edytować, aby wyglądało na to, że planeta obraca się, więc gra jest zawsze „na wierzchu”.

Code Eyez
źródło