Mega Man tarzı ekran kaydırma tasarımı


25

NES klasik Mega Man serisi, kafamı uygulama etrafında kaydırmakta zorlandığım çok spesifik bir kaydırma tekniği kullanıyor. Temel olarak, seviye aynı boyutta olan "ekranlara" bölünmüştür. Ekranların bazıları, daha geniş bir oyun alanı yanılsaması yaratarak, birbirlerine yumuşak bir şekilde kaydırır . Ekranların bazıları , oynatıcının ekranın kenarına gelene kadar kameranın kaymasını önler ; bu sırada bir geçiş olur ve bir sonraki ekran gösterilir. Tek bir ekranın birden fazla geçişi olması da mümkündür, örneğin bir ekrana açılan bir merdiveni vardır, ancak başka bir ekrana da gidebilirsiniz.

Bu ekran geçişleri nasıl modellenebilir?

Mega Man ekran geçiş şeması

  • Ekran 0, oynatıcının başladığı başlangıç ​​ekranıdır.
  • Ekran 0-3 yatay olarak düzgün kaydırılır ve oynatıcıya sürekli bir oyun alanı olarak görünür.
  • Ekran 3 ile komşu ekranlar 4 ve 5 arasında bir geçiş olduğu için, oynatıcı ilgili kenara hareket etmediği ve bir sonraki ekrana geçmediği sürece kamera Ekran 3'ün sağ veya üst kenarlarından geçmeyecektir.
  • Oynatıcı geçiş kenarlarından birine hareket ettiğinde, kullanıcı girişi geçici olarak devre dışı bırakılır ve kamera yeni alana geçer, ardından kullanıcı girişi geri yüklenir.

  • Mavi ekran (Ekran 5) yatay kaydırmayı devre dışı bıraktı, böylece yalnızca dikey geçişler mümkün olabiliyor.

  • Yeşil ekran (Ekran 6), Ekran 5'e dikey bir geçişe sahiptir, ancak aynı zamanda Ekran 7'ye yatay olarak düzgün kaydırma yapılabilmesini sağlar.

Düzenleme : Geçişlerin oda açısından uygulanması beni şu şekilde yönlendirir:

Oda yapısı uygulama şeması

Oklu küçük çentikler, geçişin olabileceği bölgelerdir. Her bölgenin bir "yönü" vardır ve odanın görünür alanının hemen dışında yer alır . Oyuncu bir bölgeye çarptığında, bir geçiş başlayacaktır.


1
bu davranış Metroid serisindeki 2D oyunlarda da mevcuttur.
Sparr

Evet, aslında aynı. Aradaki fark, IIRC Metroid’in bazı odalarda / millerde dikey olarak düzgün kaydırma yapmasına izin verirken, Mega Man hiçbir zaman dikey olarak düzgün kaydırma yapmamıştır; her zaman bir geçiş oldu.
Zack The Human

Bunun 'fiske taraması' dendiğini duydum.
Blecki

Yanıtlar:


21

İhtiyacınız olan şey, ekranların aksine odaların konsepti gibi görünüyor . Ekranlar 1-3 bir oda olacaktır, örneğin Odalarınız daha sonra herhangi bir boyut ve şekilde olabilir, hatta bir ekranın katları ile sınırlanabilir .

Kameranız, oynatıcı sınıra çok yaklaşana kadar (yarım ekran genişliği), belirli bir odadaki oynatıcıyı izler. Oynatıcı sınır boyunca ve başka bir odaya girdiğinde geçiş görselleştirmesini gerçekleştirirsiniz.

Her odanın, başka bir odanın erişim noktalarıyla eşleştirilen bir dizi erişim noktası vardır - bu geçiş noktalarını oluşturur.


Önerin için teşekkürler. Başlangıçta yapmak istediğim şey buydu ama geçişlerle uğraşmaya çalışırken zihinsel bir barikatı çarptım. Örneğin, odanın sol ucunda bir girişi ve sağ ucunda bir çıkışı olan uzun bir oda olduğunu söyleyin. Sanırım bununla baş etmenin yolu, geçişi tetikleyebilecek tanımlanmış küçük bölgelere sahip olmaktır, hmm?
Zack, The Human

Biraz daha: "oda" kavramı şu anda oyunumda sahip olduğum şey. Odaların boyutu isteğe bağlı olabilir, ancak odadan odaya nasıl geçileceğini henüz tanımlamadım.
Zack, The Human

1
@Zack: Kamera Oynatıcıyı izler. Kamera sınırları hiçbir zaman Oynatıcının içinde bulunduğu oda dışındaki bir oda ile örtüşmemelidir (yani, görünüm çerçevesinin sağ kenarı bu odanın sağ kenarına ise, kamera sağa hareket edemez). Oyuncu bir oda duvarından bitişik bir odaya geçerse, Kameranın yeni Oda içinde güvenli bir şekilde durmasını sağlayın (bu hareket için yapınızda sadece yukarı / aşağı / sol / sağ için endişelenmeniz gerekir). İsteğe bağlı olarak, oynatıcı bir oda duvarına girerse, otomatik kontrolü elinize alın ve onları tamamen yeni odanın içinde olmak için ileri doğru yürütün.
doppelgreener

1
@Zack: Sizin soru düzenlemenizin düşündüğüm ile ilgili olduğu görülüyor. Oyuncunun pozisyonu sadece belirli bir odadan bu geçiş yerlerinde (dikey bir duvarda y1 ve y2 arasında veya yatay bir duvarda x1 ve x2 arasında) hareket edebilir ve en kısa sürede konumunu bir sonraki odaya yerleştirirsiniz. - "ileri geri" döngüsünden kaçınmak - ve görsel geçişi gerçekleştirmek.
TreDubZedd

1
Ayrıca, her oda etrafında, genellikle oynanamayan bir alan olan (geçiş bölgeleri hariç) bir "sınır" düşünebilirsiniz. Odalarınızı, oynanamayan kenarların her zaman "duvar" grafikleri içerecek şekilde grafiksel olarak tasarlayabilirsiniz, ancak geçiş bölgeleri odanın geri kalan kısmı gibi açık kalır. Oyuncunun (oynanabilir) sınıra tamamen geçmesini bekleyerek bir geçiş "çakışması" yapabilir ve bir sonraki odada, yeni konumun sınırı tamamen kesmeyeceğinden emin olabilirsiniz.
TreDubZedd

-8

Ekran boyutunda topaklardan oluşan daha büyük düz kaydırma alanlarının konsepti, verileri belirli boyutlardaki topaklarda (bir bellek sayfası gibi) tutarak performans kazanımlarının elde edilebileceği klasik konsollardaki şiddetli kaynak sınırlamalarının bir eseridir. Modern bir oyunda böyle bir sistemi kullanmak için çok az neden var.


7
Orijinal geliştiricilerin fayans, sprite vb. Yüklemek için bu yöne kaydırmayı uygulamak zorunda olduğunu anlıyorum. Sorum, benim istediğim kamerayı ve / veya veya kaydırma hareketi.
Zack The Human

4
-1 - Oyun alanının süreksiz parçalara bölünmesi artık yükleme ile ilgili olmayabilir, ancak oyuncular için belirli bir yer hissi yaratır ve alanı zihinsel olarak haritalandırmasına yardımcı olur.

@Joe bu benim cevabımla nasıl alakalı? Ben özellikle ve doğrudan ekranın büyüklüğündeki parçalara hitap ediyorum. Parçaların süreksiz olması ya da olmaması hakkında hiçbir şey söylemedim.
Sparr

Cevabınızı düşürmediğimi bilmenizi isterdim, ancak sorumu yanıtladığını gerçekten sanmıyorum: 'Bu ekran geçişleri nasıl modellenebilir?'.
Zack The Human

@Zack teşekkürler. eğer çok daha negatif olursa, onu sileceğim, fakat
-3'te
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.