Tôi đang viết một bản sao hạ cánh mặt trăng đơn giản trong JavaScript (http://www.isogenicengine.com/demos/1.1.0/lander/) và thay vì cảnh quan cơ bản chỉ có mức cao và thấp, tôi muốn một thuật toán tạo ra các hang giống ngẫu nhiên không gian. Cho một khu vực hình chữ nhật để làm việc với [0, 0, 1920, 1200] thuật toán sẽ có thể tạo ra một cái gì đó giống như hình ảnh dưới đây. Lý tưởng nhất là bất kỳ "lối vào" nào vào khu vực hang động nên có chiều rộng đặt để người hạ cánh có thể nhận được "bên trong" nó.Tạo một Đa giác 2D Lõm Ngẫu nhiên Cảnh JavaScript
Tôi đã cho rằng điều này có thể không thực hiện được và rằng tôi thay vì có thể chỉ cần vẽ một loạt các hình ảnh như trên và chuyển đổi dữ liệu pixel vào dữ liệu đa giác thô, nhưng nó sẽ là cách mát để có mức độ được tạo ngẫu nhiên!
Đối với điểm thưởng siêu hardcore, khả năng xác định số lượng cấu trúc giống như hang động sẽ tuyệt vời hơn nữa.
Đầu ra của thuật toán sẽ là một mảng điểm, mỗi điểm là đối tượng chứa thuộc tính x và y {x: val, y: val} khi bạn vẽ liên tục giữa điểm hiện tại và điểm tiếp theo, tạo nên đa giác.
Nếu ai đó có triển khai JavaScript về nội dung nào đó tương tự cũng sẽ giúp ích rất nhiều!
hãy xem xét các vấn đề này, chúng có thể trợ giúp: http://accidentalnoise.sourceforge.net/minecraftworlds.html http://gamedev.stackexchange.com/questions/20588/how-can-i-generate-worms- kiểu địa hình http://gamedev.stackexchange.com/questions/15912/terrain-generation-for-tile-based-2d-platformer – mfreitas