Làm thế nào tôi có thể thực hiện một con đường vô tận mà người chơi chạy xuống?


17

Tôi muốn tạo ảo giác rằng một người đàn ông đang chạy trên một con đường dài, tức là bức ảnh này

http: //camlinecam điềugeliated.web.officelive.com / images / road% 20gpson1.jpg

Nếu bạn đã chơi Temple Run trên iPhone, đó là một nguyên tắc tương tự, nhưng thay vì một ngôi đền thì đó là một con đường bình thường.

Tôi muốn biết làm thế nào điều này được thực hiện. Ví dụ: tôi chỉ lặp lại hình ảnh đường này trong một vòng lặp?

Câu trả lời:


16

Tôi sẽ vẽ một hình tứ giác có kết cấu trên mặt đất (tức là nằm trên mặt phẳng XZ), lớn như diện tích có thể nhìn thấy, và sau đó chơi xung quanh với tọa độ kết cấu đỉnh (với chế độ địa chỉ kết cấu được đặt thành bọc ) để tự động chăm sóc cả lặp lại kết cấu và cuộn kết cấu .

  1. Để lặp lại thay vì đặt tọa độ kết cấu dọc của bạn từ [0 đến 1], hãy đặt nó từ [0 đến N] trong đó N là số lần bạn muốn kết cấu lặp lại. Điều chỉnh giá trị này tùy thuộc vào chiều cao của quad của bạn so với chiều cao kết cấu của bạn.
  2. Để cuộn, tôi chỉ cần cuộn tọa độ kết cấu dọc, thay vì nằm trong khoảng từ [0 đến N], nó sẽ nằm trong khoảng từ [inc đến N + inc] với giá trị inc được tăng hoặc giảm mỗi khung. Thỉnh thoảng tôi sẽ bọc inc trở lại điểm gốc để tránh tràn / tràn.

EDIT Tôi vừa thử thực hiện điều này chính xác như tôi đã mô tả (nhưng trong XNA) và nó hoạt động khá tốt. Xem video này của bản demo. Mã nguồn ở đây cho những người quan tâm.


Chẳng hạn, với N bằng 3, bạn sẽ có được một cái gì đó giống như hình ảnh bên dưới (Tôi đã vẽ phần giữa bằng màu đỏ để bạn có thể thấy nơi lặp lại xảy ra). Sau đó, chỉ cần thay đổi giá trị của inc sẽ làm cho đường di chuyển theo hướng này hay hướng khác, tùy thuộc vào việc bạn tăng hay giảm nó.

nhập mô tả hình ảnh ở đây


Kỹ thuật tương tự có thể được sử dụng để giả mạo hình ảnh động của chủ đề xe tăng. Tất nhiên, sẽ không thể sử dụng được nếu bạn lập mô hình cho mọi phân khúc chuỗi ...
Exilyth

1

Nếu bạn muốn tạo một con đường vô tận "thực sự", bạn tạo ba bề mặt và lặp lại chúng khi mỗi bề mặt di chuyển ra ngoài tầm nhìn. Đặt các bề mặt từ đầu đến cuối trong không gian thế giới và di chuyển tất cả về phía máy ảnh. Khi đầu gần nhất di chuyển khỏi camera, đặt lại vị trí của nó về cuối bề mặt xa nhất.

Nếu bạn muốn thực hiện nó như một sprite với ảo ảnh của chuyển động, bạn cần tạo ra một số kết cấu khác nhau, trông giống như thế này:

Khi khung nhìn di chuyển về phía trước vòng lặp thông qua các kết cấu theo thứ tự.


0

Lặp lại hình ảnh là một ý tưởng tốt. Chỉ ra có bao nhiêu lần lặp lại cần phải được hiển thị trên màn hình và vẽ hình ảnh đó với số lần. Khi đường di chuyển, sẽ có một điểm mà một hình ảnh nằm hoàn toàn phía sau camera và do đó không nhìn thấy được. Tại thời điểm đó, bạn muốn di chuyển hình ảnh đó từ phía sau chân của bạn đến tận cùng của dải hình ảnh hữu hạn của bạn.

Trong khi chúng ta đang ở đó, bạn sẽ nhận được hiệu quả tốt nhất từ ​​nó bằng cách bắt chước quan điểm không ổn định của một người đàn ông đang chạy. Ghi lại một bộ phim của bạn chạy từ góc nhìn của bạn, và nghiên cứu nó.


2
Điều đó không thực sự hiệu quả, vì hình ảnh của anh ấy là phối cảnh. Anh ấy cần những hình ảnh khác nhau để chơi như hoạt hình.
Bobby
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.