Triển khai RPG Maker Auto ốp lát


8

Tôi hiện đang làm việc với Phaser, tạo ra một trò chơi được tạo theo thủ tục. Tôi muốn sử dụng một số nghệ thuật sản xuất RPG trong trò chơi của mình (để tham khảo, tôi đang sử dụng RTP). Tôi tình cờ thấy bài viết này , nó phá vỡ cách thức hoạt động của gạch tự động. Tôi cũng tình cờ tìm thấy câu trả lời này liên kết đến một bài viết khác giải thích về ốp lát tự động.

Đây là điều, tôi không biết làm thế nào tôi sẽ thực hiện một cái gì đó như thế này. Tôi chắc chắn rằng tôi sẽ phải theo dõi những bộ gạch nào có thể kết nối với những viên gạch khác (ví dụ, một số gạch có cỏ ở bên ngoài và cát ở bên trong, vì vậy trong ví dụ này tôi phải lưu ý rằng "cỏ "Gạch là gạch ngoài).

Tôi đã tạo một trình tạo bản đồ (xem tại đây ) và tôi muốn tạo các kết nối liền mạch giữa các khu vực gạch của mình. Ví dụ, các khu vực màu nâu sẽ là khu vực "dày đặc" (rừng, hang động, v.v.). Các khu vực màu tím sẽ là sàn đá, và khu vực màu xanh lá cây là cỏ. Có một lát hoạt động rất tốt cho những thứ như thế này:

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

Vì vậy, tôi muốn sử dụng cỏ trên cùng bên trái, và bộ gạch thứ ba, đá, kết nối với cỏ.

Những loại điều nào tôi sẽ phải xem xét khi triển khai tự động ốp lát bằng cách sử dụng các loại ô này, và có thuật toán nào tôi có thể xem xét để thực hiện không?



Tiled là một trình soạn thảo bản đồ nguồn mở có triển khai tự động xếp. Bạn có thể thử tìm cách triển khai trong mã nguồn .
Philipp

Mặc dù mô hình tự động hóa của @Philipp Tiled và RPGMaker khác nhau. Tiled cho phép bạn chỉ định bốn góc của ô là một loại địa hình cụ thể ("cát", "cỏ", "nước", v.v.) và chọn một ô phù hợp dựa trên đó. RPGMaker cho phép bạn chỉ định các trung tâm của ô là một loại biến thể được bao quanh bởi loại cụ thể (ví dụ: "cát bên trong cỏ", "nước bên trong cỏ", v.v.). Các lớp được sử dụng để đối phó với giới hạn này trong cả hai trường hợp. Một sự chuyển đổi là có thể, tất nhiên; ở đây, ví dụ như sử dụng REFMAP cát-bên trong cỏ (có đệm cỏ): i.imgur.com/Z343MVq.png
Martin Sojka

2
Đối với bản ghi, tài nguyên RTP chỉ được cấp phép sử dụng với phần mềm tương ứng của họ và các phiên bản khác của RPG Maker. Sẽ ổn khi giữ chỗ trong quá trình phát triển, nhưng bạn sẽ cần thay thế chúng bằng một bộ đồ họa khác để phân phối - ví dụ: bộ REFMAP hoặc đồ họa dựa trên Cup Pixel được giải phóng.
Martin Sojka

Cảm ơn những người đứng đầu @MartinSojka - Dù tốt hay xấu, nhà sản xuất RPG cung cấp bộ nghệ thuật đầy đủ nhất để làm việc với (gạch, mặt, họa tiết, hiệu ứng, v.v.), nhưng tôi đã hạn chế những gì tôi sử dụng, vì vậy tôi có thể bao gồm các căn cứ của tôi khi đến lúc để thay thế chúng. Tôi chỉ không muốn dành hàng giờ để tìm kiếm nghệ thuật khi tôi có thể lập trình. Cảm ơn thông tin về Giải trí Pixel Cup, tôi sẽ xem xét điều đó sau. FWIW, tôi không có kế hoạch bán trò chơi này, nhưng nếu có, tôi chắc chắn sẽ thay thế nghệ thuật.
Seiyria

Câu trả lời:


1

Tôi đã thực hiện điều này (sử dụng RTP) một cách đơn giản (nhưng khá tẻ nhạt).

Tôi lấy một danh sách tất cả các hàng xóm cho ô hiện tại và với rất nhiều ifcâu lệnh tôi đã vẽ ô đó là 4 ô nhỏ hơn / quý.

Đối với tôi phương pháp này dẫn đến một số lỗi hầu như không nhìn thấy được, nhưng chúng có thể được giải quyết bằng cách kiểm tra một số trường hợp cạnh và sửa cho phù hợp.

Nếu bạn nhìn vào hình ảnh nguồn và hình ảnh kết quả trong nhà sản xuất RPG, bạn sẽ có thể thực hiện điều này (có thể với một số lỗi và thử) với các ifcâu lệnh, xác định trường hợp hiện tại là gì cho ô vuông đã cho và vẽ tương ứng .

Phương pháp này có thể được cải thiện hơn nữa và làm cho bớt tẻ nhạt hơn với bitmasks (như được đề cập bởi jzx).


Trả lời bình luận của bạn:

Bằng cách chỉ hiển thị gạch quý, khả năng giảm đáng kể.

Bạn không cần phải xử lý các ô trên các ô, vì chúng phải nằm trên một lớp khác nhau được sắp xếp theo thứ tự chữ cái hoặc tô màu trên nhau.

Ngoài ra, tôi không hiểu tại sao bạn cần hàng xóm tích hợp, nhưng điều đó có thể được xử lý riêng trong tính toán hàng xóm, có thể sử dụng một số loại bản đồ (danh sách các cặp pha trộn).

Bản đồ thường là tĩnh và hình ảnh có độ phân giải thấp, do đó không cần phải lo lắng về hiệu suất.


Tôi đã rất quan tâm đến việc sử dụng bitmasks, cho đến khi tôi thấy rằng sự phức tạp tăng lên với mỗi gạch lân cận có thể. Nhìn vào RTP, tôi hoàn toàn không thể thu thập được bao nhiêu trường hợp có thể xảy ra, với điều kiện là một số gạch có thể được xếp chồng lên các gạch khác và một số gạch có hàng xóm tích hợp.
Seiyria

@Seirya Chỉnh sửa câu trả lời.
akaltar

cảm ơn đã cập nhật Mặc dù vậy, có một điều - Nếu bạn nhìn vào các ô ở trên, bạn có thể thấy một số gạch có hàng xóm tích hợp, như cát trên cỏ hoặc gạch đá trên cỏ. Đối với một số gạch như nước, có thể được đặt trên bất cứ thứ gì, đây không thực sự là một vấn đề.
Seiyria
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.