Bagaimana cara menerapkan penggiliran paralaks dalam 2D?


Jawaban:


20

Bagilah posisi setiap layer dengan "jarak" yang Anda inginkan dari kamera.

Sebagai contoh: Buat beberapa variabel untuk mewakili posisi kamera, cameraXdan cameraY. Atur ini untuk menyamakan posisi karakter Anda, mungkin menambahkan sedikit ekstra ke arah gerakan.

Lapisan utama hanya akan diposisikan di

mainLayer.x = -cameraX;

lapisan tengah pada sesuatu seperti

middleLayer.x = -cameraX * 0.5;

dan lapisan paling jauh di

farLayer.x = -cameraX * 0.2;

Ubah konstanta sesuai kebutuhan.


3
Apa yang dikatakan Iain, ditambah lagi saya mengambil "faktor paralaks" (1, 0,5 dan 0,2 dalam kode Iain) dan menjadikannya parameter yang menggambarkan lapisan saya, dengan cara itu saya dapat menyesuaikan kehalusan paralaks (atau saat runtime).
Troy Gilbert

6

Pada dasarnya Anda ingin benda bergerak lebih cepat, semakin dekat ke 'kamera'. Bagaimana Anda menerapkannya, itu terserah Anda.

Saya menetapkan masing-masing lapisan saya kedalaman, dan kemudian ketika saya menggulir adegan, untuk setiap lapisan saya membagi gulungan itu dengan kedalaman lapisan, sehingga lapisan yang lebih jauh bergerak lebih lambat.


5

Lapisan yang "lebih jauh ke belakang" akan perlu menggulir di sebagian kecil dari kecepatan lapisan latar depan. Setengah kecepatan menyiratkan dua kali lipat jarak. Efek lain seperti pewarnaan untuk mensimulasikan kabut, dll, mungkin juga menambah ilusi.


1

Cara terbaik untuk melakukan ini adalah dengan hanya membuat sprite sebagai paha billboarded dalam 3D. "Gameplay" dapat terjadi semua dalam satu pesawat, sedangkan latar belakang dan latar depan dapat diposisikan lebih dekat atau lebih jauh dalam ruang 3d. Dengan begitu, efek paralaks ditangani untuk Anda tanpa Anda harus melakukan pengkodean khusus :-)


3
Jika Anda melakukannya, Anda harus meningkatkan quads jauh Anda untuk mengkompensasi penskalaan jarak, atau mengatur matriks proyeksi yang tidak menerapkan perspektif apa pun. Mungkin lebih mudah menerjemahkan sendiri paha depan.
murah hati

0

Buat gulir lapisan bawah dengan mengurangi dari posisinya, gambar lapisan tengah seperti biasa, dan buat gulir lapisan atas dengan kecepatan lapisan bawah dibagi dua.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.