Giả sử tôi có ba lớp: nền trước, mặt đất trung gian và nền. Điều gì có liên quan đến việc sử dụng ba lớp này để tạo cuộn parallax ?
Giả sử tôi có ba lớp: nền trước, mặt đất trung gian và nền. Điều gì có liên quan đến việc sử dụng ba lớp này để tạo cuộn parallax ?
Câu trả lời:
Chia vị trí của mỗi lớp cho khoảng cách mà bạn muốn nó có từ máy ảnh.
Ví dụ: Tạo một vài biến để thể hiện vị trí camera cameraX
và cameraY
. Đặt những cái này bằng với vị trí của nhân vật của bạn, có thể thêm vào một chút phụ theo hướng di chuyển.
Lớp chính sẽ được định vị tại
mainLayer.x = -cameraX;
lớp giữa ở một cái gì đó như
middleLayer.x = -cameraX * 0.5;
và lớp xa tại
farLayer.x = -cameraX * 0.2;
Thay đổi hằng số khi cần thiết.
Về cơ bản, bạn muốn các đối tượng di chuyển nhanh hơn, chúng càng ở gần 'camera'. Làm thế nào bạn thực hiện đó là tùy thuộc vào bạn.
Tôi chỉ định cho mỗi lớp của mình một độ sâu, và sau đó khi tôi cuộn cảnh, với mỗi lớp tôi chia cuộn đó theo độ sâu của lớp, để các lớp xa hơn di chuyển chậm hơn.
Cách tốt nhất để làm điều này là chỉ đơn giản là hiển thị các họa tiết dưới dạng các hình tứ giác trong 3D. "Trò chơi" có thể xảy ra tất cả trên một mặt phẳng, trong khi nền và tiền cảnh có thể được định vị gần hơn hoặc xa hơn trong không gian 3d. Bằng cách đó, hiệu ứng thị sai được xử lý cho bạn mà bạn không phải thực hiện bất kỳ mã hóa đặc biệt nào :-)