Kullanıcı dostu kutupsal koordinatların bir dairenin etrafındaki hareketini nasıl yapabilirim?


23

Bir gemi ile gezegenlere indiğiniz ve gemiden çıkıp dolaşabileceğiniz 2B bir oyun üzerinde çalışıyorum.

Bu gezegenler çok küçüktür (bazen ~ 350 piksel yarıçapı düşünür) ve yandan görülür. Böylece tüm gezegeni genel olarak ekranda kolayca görebilirsiniz.

Bu kafa karıştırıcı olabilir, işte bir resim: uzay oyunu

Sırasıyla saat yönünün tersine ve saat yönünde hareket etmek için A ve D tuşlarını kullanıyorum. Sorun şu ki, gezegenin "üstünde" iseniz (üst yarıda), bu mantıklı: A sola doğru hareket eder, D sağa doğru hareket eder. Bununla birlikte, gezegenin "altındaki" iseniz (alt yarı), A sağa doğru hareket eder ve D sola doğru hareket eder.

Bunu daha kullanıcı dostu hale nasıl getirebilirim?


21
Kullanıcılara bu kafa karıştırıcı bulduklarını sordunuz mu? Ben kesinlikle istemiyorum - karakterinizi sağa ve sola hareket ettirmek için karakterinizi perspektifinden sola hareket ettirmek için sağa basın . Bu, bir dönüşün ortasında düğmeleri değiştirmekten çok daha iyidir (eğer bunu yapmayı planlıyorsanız).
Charanor

Yanıtlar:


38

İlk önerim sadece = Saat Ayönünün tersine ve D= Saat yönünün tersine hareket etmektir . Kafa karıştırıcı değil ve bunun gibi yörünge hareketi söz konusu olduğunda hemen hemen "standart" (yani en yaygın) seçimdir.

Bir başka yol da oyununuzun hareket şeklini değiştirmektir. Oyuncuyu gezegende hareket ettirmek yerine, gezegeni döndürebilirsiniz. Bu aynı zamanda çok yaygın bir seçenektir, ancak ekranda birden fazla gezegen varsa , oyuncu dışındaki her şeyin dönmesi gerekeceğinden kafa karıştırıcı olabilir . Bu yöntemi kullanmaya karar verirseniz, gözünüzün takip etmesi gereken hareketli nesnelerin miktarını azaltmak için gezegenin yalnızca bir bölümünü göstermeye yardımcı olabilir:

sadece gezegenin ilk yarısı

Fareyi kullanmakta özgürseniz, dolaşmak için her zaman fare tıklamalarını kullanabilirsiniz. Bir yere tıklamak, oynatıcının o noktaya doğru hareket etmesine ve otomatik olarak en kısa yönü seçmesine neden olur. Daireler "tıklama" ve oklar en kısa yöndür.

tıklama için en kısa yön

Ek bir bonus olarak, oyununuzu bir uygulama olarak yayınlamak istiyorsanız Mobil kontrollere çevirmek de çok kolaydır.


3
Kamera hareketleriyle gidecekseniz, biraz gerisinde kalmanızı öneririm, gittiğiniz yönü ve hızı vurgulamak istiyorsanız. karakteriniz, hareket ettiğiniz yönde 5 veya 10 derece eğik görünür.
Satibel

16

Karakter gemiden çıktığında, görünümü yeniden gezegene yerleştirin, böylece karakter gezegenin tepesinde olacak ve etrafta dolaşırken karakteri karakterle birlikte hareket ettirin. Bu şekilde karakter, gezegendeki görüşe göre her zaman en üsttedir, bu nedenle sol / sağ kontrolleri nereye indiğiniz önemli değildir.


3
Dikkatli olmazsanız, bu çok kafa karıştırıcı olabilir.
Beefster

11

Bir yaklaşım (genellikle, statik olmayan kameralara sahip, çubuk tabanlı hareketi olan üçüncü şahıs oyunlarında kullanılan), girişin her başladığı zaman (örneğin, tuşa basıldığında) hareketin referans çerçevesini oluşturmak ve saklamaktır. giriş sona erene kadar bu hareket çerçevesi (tuş serbest bırakılır). Bu, "A" tuşunun karakteri her zaman "sola", "her ne olursa olsun - dairenin dibindeyse saat yönünde, aksi halde saat yönünün tersine - anahtar serbest bırakılıncaya kadar hareket edeceği anlamına gelir.

Ne yazık ki, bir daireyle sınırlandırıldığınız için, karakter bu dairenin aşırı sol veya sağ uzantılarında veya yakınında olduğunda bu teknik hala dağılır. Kolayca hangi yöne gideceğinizi seçerek çalışmasını sağlayabilirsiniz, ancak kullanıcı bunu kafa karıştırıcı bulabilir. Muhtemelen, şu anda sahip olduğunuz mevcut "A her zaman saat yönünün tersidir" yaklaşımına sadık kalmanın daha fazla kafa karıştırıcı olması.


6
Dairenin sağında, S saat yönünde hareket etmelidir.
kullanıcı253751

1
Bunu düşünmedim çünkü OP sadece iki anahtardan bahsetti, ama bu iyi bir fikir.
Josh

1
Ayrıca, bu kontrol modelinin en iyi hissettiği analog çubuk kontrollerini dikkate almak önemlidir.
Beefster

10

Benzer bir konsepte bir göz atmanızı öneririm ama sonra 3d: Süper mario galaksisi.

süper mario galaxy ekran görüntüsü https://youtu.be/_8eJC4gIAm4?t=19m

Kısa hareketlerde referans çerçevesi aynı kalır, evren hareket etmez, belirli bir eşiğin ötesine geçerek evren boyunca hareket eder / kayar, böylece referans çerçevesi ortada kalır.

Hareket halindeyken evreni "hareket bulanıklaştırmak" isteyebilir, böylece daha doğal görünür ve gözler hareketli parçaların kayma pozisyonlarına odaklanmayacaktır.

Nintendo'nun oyun oynamayı olabildiğince yumuşak hale getirmek için bir miktar araştırma yaptığını farz ediyorum ve buna da karar verdiler. Her zaman daha büyük şirketlerin ne düşündüklerini araştırmayı, Ar-Ge'ye maksimum rahatlık ve oynanabilirlik için yatırım yaptıklarını umarak bakmayı seviyorum.


7

Kullanım A/ Dsırasıyla gezegenimizin soldaki / sağdaki alanına doğru olan yönde bir karakter getirin ve W/ Süstteki / en alt noktaları doğru karakteri taşımak için.

Bu şekilde, oyuncu karakteri her zaman giriş hareketi ile aynı yöndeD hareket ettirir; örneğin S, karakterin konumundan bağımsız olarak daima doğru hareket eder, daima aşağı doğru hareket eder.

Tuş basılı tutulurken oyun aynı saat yönünde devam edebilir veya karakteri sınırlama noktasında durdurabilir. Eğer durursa, büyük bir problem gibi görünmüyor - oyuncu aynı saat yönünde devam etmek istiyorsa girişlerini değiştirmek için tam bir kadranda bulunuyor.

Ek olarak, dairesel bir W- A- S- Dveya W- D- S- Agirdi paterni oldukça sezgisel görünen gezegenin etrafını dolaşmasına neden olur.

Birden fazla tuşa basmak, yalnızca en son basılan tuşun öncelik kazanmasına neden olabilir veya sekiz sınırlama noktası gibi daha karmaşık davranışlar kullanabilirsiniz.


1
Süper Mario Odyssey'yi oynadıktan sonra önereceğim şey buydu . Bununla birlikte, kontrol şemalarındaki değişiklik nedeniyle, başlangıçta oldukça sezgisel değildi . Ana kontrol planınız ise, belki de bu bir problem olmayacak
Kaiged

3

Bu, pek çok oyunun uğradığı iki klasik "zihinsel model" probleminden biridir.

Her oyuncu oyunun oyun eylemleri üzerine haritayı nasıl kontrol ettiği için bir “zihinsel model” geliştirir. Oyunlar zaman içinde kontrollerinde gittikçe daha fazla benzerlik kazandıkça, insanlar ayrı zihinsel modellerin ayrı oyunlar için ayrı modeller geliştirmek yerine yeni oyunlara uygulanmasını beklemeye başladılar. Bu, her oyuncunun kontrollerin nasıl çalışması gerektiğine dair zihinsel bir modele sahip olmaması dışında, iyi olurdu.

Örneğin, diğer klasik "zihinsel model" problemi, bir joystick'e (tipik olarak bir gamepad'in sağ analog çubuğu) basmanın yukarı bakmak mı, yoksa öne doğru eğilmek mi (yani aşağı bakmak ) mı gerektiğidir . Her iki model de nesnel olarak doğru değildir , ancak çoğu oyuncu bu iki olası eşlemeden sadece birini kafasında tutar ve eğer oyun kişisel olarak beklediğinden farklı bir şey yaparsa atılır.

Sorunuz tamamen aynı ikilem; Buradaki “zihinsel model” meselesi, bir kontrol çubuğuna doğru itmenin “karakterin sağına gitme” (Resident Evil'de olduğu gibi) veya “ekranın sağ tarafına doğru gitme” (Mario'da olduğu gibi) anlamına gelmesidir. Veya bu durumda, "saat yönünde hareket ettirin" (Tempest'te olduğu gibi, kürekten joystick kontrollerine geleneksel bir dönüşüm kullanırken).

Her oyuncu, alışkın oldukları (veya değişmekte zorlandıkları) isteksiz oldukları yerleşik bir modele sahip olacaktır. Böyle bir "zihinsel model" sorununda, sorunun nasıl ele alınacağına ilişkin üç seçeneğiniz vardır:

  1. Geliştirici olarak oyununuz için en uygun modelin hangisi olduğunu seçer ve kullanırsınız. Seçtiğiniz modelde sorun yaşayan kişilerin şikayetlerini görmezden gelin; sadece adapte olmak zorunda kalacaklar. Ve eğer oyununuz yeterince zorlayıcıysa, yapacaklardır.
  2. Her iki olası modeli de uygulayın ve oyuncuların hangisini kullanmak istediklerini seçmesine izin verin.
  3. Hangi zihinsel modeli kullanıyor olursanız olun, kontroller-> oyun eylemlerinin eşlenmesinin aynı kaldığından emin olmak için oyunu yeniden tasarlayın.

Seçenek 3 ("oyunu zihinsel modeller birbiriyle çakışmayacak şekilde yeniden tasarlayın"), bu durumda fotoğraf makinesini oynatıcıyla birlikte döndürmek anlamına gelir, böylece oyuncu ekranda daima dik durur. Bu şekilde, "sağa saat yönünde gitme" ve "sağa ekranın sağ tarafına gitme" her zaman aynı hizadadır; Daha fazla çatışma yok ve kontrollerin nasıl çalışması gerektiğine dair zihinsel modellerine bağlı olarak oyuncuların kafası karışmayacak.

Seçenek 2, her iki kontrol stilinin de uygulanması anlamına gelir; biri sağa bastırırken sizi ekranın sağ tarafına götürür, biri sağa bastırmak sizi saat yönünde alır ve oynatıcının kullanmak istedikleri kontrol stilini seçebileceği seçenekler ekranına sahiptir.

Buradaki herhangi bir seçenek geçerlidir; farklı seçenekler sadece farklı iş miktarları gerektirir ve oyununuza farklı kısıtlamalar getirir. Oyuncunun, gezegenin "alt" tarafında, tematik ya da sanatsal nedenlerle dolaşırken görünür olması gerçekten önemliyse, seçenek 3'ü kullanmak istemeyeceksiniz ve 1 veya 2'yi kullanmalısınız. değil, o zaman seçenek 3 muhtemelen ideal seçimdir.

“Kumanda kolunu sağa doğru itmek anlamına gelir” ekranının sağ tarafına doğru hareket etmek için küçük bir uygulama notu: Bu kontrol stilini uygularken, kumanda kolunun yönünü saat yönünde / saat yönünün tersine bir seçimle eşleştirerek yapmanız gerekir. aynı saat yönünde / saat yönünün tersine kararını, oyuncu gezegenin alt tarafına doğru hareket ederken bile, joystick tekrar hareket edene kadar tutun. Yani, bir gezegenin tepesinde iken sağa veya bir gezegenin sağ tarafındayken aşağıya doğru basmak, karakterin her biri saat yönünde ilerlemeye başlar ve karakter daha sonra oyuncu hareket edene kadar gezegenin dibinde bile saat yönünde ilerlemeye devam eder. joystick, o joystick yönünün şimdi farklı bir yön olarak yorumlanacağı gezegenin bir kısmına hareket etse bile, yine joystick.

Bu tekniğe genellikle joystick kontrolünü "kilitleme" denir ve genellikle kamera ani bir dönüş yaptığında (oynatıcının aniden yön değiştirmesini istemediğiniz), ancak 3D oyunlarda kullanılır, ancak burada da yararlı olabilir 2B oyun, eğer bir kamera hareketi aksi takdirde oyuncunun değiştirilmemiş girişlerini birdenbire daha önce yaptıklarından farklı bir şey yapacaktır.


1
Dizüstü bilgisayarımın dokunmatik yüzeyinde iki parmağınızı yukarı ya da aşağıya doğru kaydırırken aşağı mı kaydırıyorsunuz? Eğer bir mobil cihazda olsaydım, yukarı olurdu (parmaklarım ve sayfam 'bağlı' olduğu için) ancak bir fare üzerindeki aynı yön aşağı olurdu ... Her Mac kullandığımda bağlantım kesiliyormuş gibi hissediyorum ...
Draco18,

@ Draco18s Bu başka bir harika örnek! Windows, aşağı kaydırma girişinin belgede daha aşağıya baktığını düşünürken, Apple aşağı kaydırma girişinin belgenin kendisini aşağı doğru hareket ettirdiğini düşünür (bu da belgenin üstüne doğru daha fazla gördüğümüz anlamına gelir). Ancak masaüstü işletim sistemlerinde, Apple pek çok insanın kaydırma girişlerinin nasıl çalıştığı için başka bir zihinsel modele sahip olduğunu biliyordu ve bu yüzden her ikisini de uyguladılar ve her kullanıcının tercih ettiklerini seçmesine izin verdiler. .
Trevor Powell,

Evet, değiştirebilirsin, yalnızca varsayılan olarak ayarladığı pek çok kişi tanırım ("belgeyi aşağı doğru taşı"). Heck, ben bir ay önce iş için aldığım windows laptop varsayılan olarak vardı. Hemen hızlı kapattım (bunun yerine "kenar kaydırma" özelliğini açtım, ancak çok yavaş olduğundan tekrar kapatacağımı düşünüyorum: cidden, kaydırma alanının tam yüksekliği kayar .... beş satır. ...)
Draco18,

2

Giriş için W / S / A / D kullanın (veya yukarı / aşağı / sol / sağ). Girişi 8 yönlü bir yön olarak kullanın (köşegenler dahil).

Ardından, oynatıcıyı geçerli yöne (saat yönünde veya saat yönünün tersine) basılan yöne en yakın olacak şekilde hareket ettirin.


Sanırım bu çözüm bir klavyeden daha çok bir joystick ile daha uygun olurdu, ama yine de olası bir çözüm, ancak bir seçeneğe sahip olacağım, çünkü parmaklarınızı wasd üzerinde bir daireye hareket ettirmek zor olsa bile bir saatten fazla.
Satibel

2

Bir seçenek, anahtarın ve hareket yönü arasındaki ilişkiyi tanımlamak yerine;

  • "ileri" hareket etmek için bir tuş (o anki seçim yönünde)
  • "geri dönme" için bir tuş (yön değiştirme)

Bu, karakterin açıkça görünür bir "yönüne" sahip olmasını gerektirir.

Bunun gerçekten diğer seçeneklerden daha anlamlı olacağından emin değilim, ama sadece ...


1

Aşağı yerçekimi olduğu yerde. Bu yüzden oyuncu karakteri bir gezegende olduğunda, kamerayı oyuncu karakterinin hareketi ile birlikte döndürerek karakterin daima gezegenin üzerinde olmasını sağlayın.

Ancak bu, gezegende gezinmeyi kolaylaştırırken, oyuncuyu diğer gök cisimlerine göre şaşırtabilir. Bu, kendiniz için karar vermeniz gereken bir tradeoff.


1

Saat yönünde / saat yönünün tersine hareketi kullanmayı seçerseniz, sistemi oyuncularınızın sezgisini daha kolay hale getirmek için yapabileceğiniz birçok şey vardır.

Karaktere belirgin ayırt edici yönler verin

Karakter yarı mavi ve yarı kırmızı ise, oryantasyon oyuncuların hatırlaması için kolaylaşır. "Saat yönünde" veya "saat yönünün tersine" tanımlamak zorunda kalmak yerine, oyuncular mavi yönde veya kırmızı yönde hareket eder. Karakter her zaman bir yöne bakarsa (tercihen saat yönünde, böylece hareket dikken en sezgiseldir) daha iyidir, çünkü İngilizce konuşanlar (ve soldan sağa dili olan herhangi biri) doğal olarak 'sağ' ile ilişki kurma eğilimindedir. “ileri”, kontroller ve hareket yönü arasındaki bağlantıyı güçlendirin.

Karakterlerin hareket etmesini asla bırakma

Karakterinizi hareket ettirdiğiniz sürece, kontrollerinizin hangi yöne döndüğünü korumak kolaydır. Sonuçta, hareket ettiğiniz yönde ilerlemeye devam etmek hiçbir işlem yapmaz ve hareketlerinizi tersine çevirmek istediğinizde , seçilecek tek bir anahtar var. Sadece, durduktan sonra tekrar seçim yapmaya başladığınızda tekrar hareket etmeye başladığınızda. Ne kadar uzun süre duraklarsanız, daha önce ne yaptığınıza bağlı olarak tekrar zorlaşırsınız. Duraklatma sıklığını ve duraklatma uzunluklarını azaltarak, oyuncuların nasıl hareket etmeleri gerektiğini unutmasını önleyebilirsiniz.


0

Bunun için birçok yaklaşım var.

1) Buna nasıl yaklaşırım gezegenin bölümlerini alır: üst, sol, sağ ve alt taraflar (eğer istenirse). Kullanıcının bir yöne bastıktan sonra, o butonu bırakana kadar karakter o yöne gitmeye devam etmesini sağlayın. Böylece karakter sol taraftaydı ve kullanıcı bastırdıysa, karakter serbest bırakılıncaya kadar saat yönünde ilerlerdi. Bu şekilde, karakter hareket ederken referans çerçevesindeki değişiklikler hakkında endişelenmenize gerek yoktur, ancak bundan sonra.

2) Başka bir yol da "Tehlikeli uzay-zaman severler" in ona yaklaşmasını ister. Bir joystick ile, yüzeye bağlı olarak referans çerçevesine sahip olmaktan ziyade, onlar, neşe çubuğunun "karakter" in durması için istenen nokta olduğu açıya sahipler. Dolayısıyla referans çerçevesi “gezegenlerinin” merkezinde idi. Karakter ve gezegen diyorum ama dışarıda nereye gittiklerini belirlediğiniz modüler gemi parçaları vardı, yani iticileri gemiyi hareket ettirmek için hangi yöne işaret ettiler.

3) Şimdi nasıl tasarladınız. Kullanımı biraz da alabilir, fakat daha önce hiçbir oyuncu görmedi. Yine de düzenleyebilirsiniz, böylece gezegen dönüyormuş gibi görünür, böylece oyun daima "üstte" olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.