Làm cách nào để tạo địa hình giống như địa hình của Trái đất?


12

Tôi là một nhà phát triển web và tôi muốn bắt đầu viết các trò chơi của riêng mình.

Để làm quen, tôi đã chọn JavaScript và canvasphần tử ngay bây giờ.

Tôi muốn tạo ra một số địa hình như thế trong Trái đất được ghi.

Trái đất bị thiêu

Nỗ lực đầu tiên của tôi khiến tôi nhận ra tôi không thể chỉ ngẫu nhiên hóa ygiá trị; phải có một chút tỉnh táo trong các đỉnh và đáy.

Tôi đã Googled xung quanh một chút, nhưng tôi không thể tìm thấy một cái gì đó đủ đơn giản cho tôi hoặc tôi đang sử dụng các từ khóa sai.

Bạn có thể vui lòng chỉ cho tôi loại thuật toán nào tôi sẽ sử dụng để tạo một cái gì đó trong ví dụ không, hãy nhớ rằng tôi hoàn toàn mới đối với lập trình trò chơi (kể từ khi thực hiện Breakout vào năm 2003 với Visual Basic)?

Câu trả lời:


18

Thuật toán chuyển vị giữa là chính xác những gì bạn muốn.

Liên kết đó có thể tạo ra một cái gì đó như thế này:

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

Hoặc thích hình ảnh của bạn, tùy thuộc vào thông số bạn sử dụng. Có nguồn C ở đây .


Cảm ơn vì điều này, tôi vẫn không chắc chắn cách triển khai nó trong JavaScript nhưng hy vọng nó sẽ trở nên rõ ràng hơn với tôi khi tôi đọc bài viết đó.
alex

Có nguồn C tôi vừa chỉnh sửa. Nó không phải là vấn đề quá lớn để thực hiện :)
Vịt Cộng sản

@ Vịt Cộng sản Cảm ơn bạn, tôi đã từng học C từ trước.
alex

alex

@alex, bạn nên sử dụng một số loại đệ quy trong việc thực hiện của bạn. Hiện tại bạn chỉ đơn giản là một dòng có thành phần y ngẫu nhiên, trong đó biến thiên ngẫu nhiên giảm sang phải.
Juha Syrjälä

5

Làm thế nào về việc sử dụng thuật toán dịch chuyển điểm giữa có thể theo sau là làm mịn nhẹ, ví dụ như lọc thông thấp để loại bỏ các gai quá sắc nét? Cách tiếp cận này không giống như trong Trái đất được ghi, nhưng sẽ cung cấp kết quả tương tự.

Tôi tin rằng Trái đất được mô phỏng bằng cách nào đó trọng lực và bụi bẩn rơi xuống. Ví dụ, bạn không thể có đồi quá dốc vì nếu không bụi bẩn sẽ rơi xuống và tạo độ dốc ít dốc hơn.


1

Có một cách tiếp cận khác bạn có thể sử dụng. Bạn có thể thêm một số sóng hình sin được tạo ngẫu nhiên và sau đó chia tỷ lệ kết quả cho vừa với màn hình của bạn. Nó thực sự dễ dàng trong thực tế và tạo ra một số kết quả tốt, mặc dù mượt mà hơn và có lẽ nhân tạo hơn so với ảnh chụp màn hình ví dụ của bạn.

Bạn có thể xem nguồn trong javascript tại đây. Nó thực sự dễ dàng để tìm hiểu một số thông số để có được các loại địa hình khác nhau.

https://github.com/fmstephe/Tankwars

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.