Paralaks kaydırmayı 2D olarak nasıl uygularım?


Yanıtlar:


20

Her katmanın konumunu kameradan almasını istediğiniz “mesafeye” bölün.

Örneğin: Kamera konumunu temsil etmek için birkaç değişken oluşturun cameraXve cameraY. Bunları karakterinizin konumuna eşit olacak şekilde ayarlayın, muhtemelen hareket yönüne birazcık daha ilave edin.

Ana katman sadece

mainLayer.x = -cameraX;

Orta katman gibi bir şey

middleLayer.x = -cameraX * 0.5;

ve uzaktaki katman

farLayer.x = -cameraX * 0.2;

Sabitleri gerektiği gibi değiştirin.


3
Ne dedi, artı "paralaks faktörü" (Iain kodunda 1, 0.5 ve 0.2) alıyorum ve onu katmanlarmı açıklayan bir parametre yapıyorum, bu şekilde paralaks inceliklerini (veya çalışma zamanında) ayarlayabiliyorum.
Troy Gilbert,

6

Temel olarak nesnelerin daha hızlı hareket etmesini, onların 'kameraya' daha yakın olmasını istersiniz. Bunu nasıl uyguladığınız size kalmış.

Katmanlarımın her birine bir derinlik atar ve sahneyi kaydırırken, her katman için bu kaydırmayı katmanın derinliğine bölerim, böylece daha uzaktaki katmanlar daha yavaş hareket eder.


5

"Daha geriye" olan bir katmanın, ön plan katmanının hızının bir kısmını kaydırması gerekir. Hızın yarısı mesafeyi iki katına çıkarır. Sisi simüle etmek gibi renklendirme gibi diğer etkiler de ilüzyona katkıda bulunabilir.


1

Bunu yapmanın en iyi yolu, spriteları 3B olarak reklam panosu olarak göstermek. Arka plan ve ön plan 3B alanda daha yakın veya daha ileri konumlandırılabilirken, “oyun” tek bir düzlemde gerçekleşebilir. Bu şekilde, herhangi bir özel kodlama yapmanız gerekmeden paralaks etkisi sizin için kullanılır.


3
Bunu yaparsanız, mesafe ölçeklendirmeyi dengelemek için uzaktaki dörtlülerinizi ölçeklendirmeniz veya herhangi bir perspektif uygulamayan bir projeksiyon matrisi ayarlamanız gerekir. Dörtlüleri kendiniz çevirmek daha kolay olabilir.
munificent

0

Alt katmanı, konumundan çıkararak kaydırın, orta katmanı normal şekilde çizin ve alt katın hızında ikiye bölünerek üst katın kaydırılmasını sağlayın.

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.