Có một số vấn đề mà tôi gặp phải trong trò chơi dựa trên tiếng ồn Perlin của mình. Hãy nhìn vào ảnh chụp màn hình đính kèm bên dưới.
Các khu vực màu trắng bạn nhìn thấy là các bức tường, và các khu vực màu đen có thể đi bộ. Hình tam giác ở giữa là người chơi.
Tôi đã triển khai vật lý trong trò chơi này bằng cách vẽ nó lên một kết cấu (pixel trắng hoặc đen), và sau đó lấy nó từ CPU.
Tuy nhiên, bây giờ tôi đứng trước một vấn đề khác. Tôi muốn các đơn vị (hoặc creep, bất cứ thứ gì bạn gọi chúng) xuất hiện liên tục, ở rìa màn hình. Vấn đề ở đây là trong trò chơi cuối cùng, sẽ có một "sương mù chiến tranh" không cho phép người chơi nhìn xa đến thế.
Tôi hình dung rằng tôi chỉ có thể quét các pixel ở cạnh màn hình và xem kết cấu vật lý của chúng có màu đen không, và sau đó sinh ra các thứ ngẫu nhiên ở đó. Tuy nhiên, nếu bạn nhìn lần thứ hai vào ảnh chụp màn hình, có (ở góc trên bên trái) một ví dụ về nơi tôi sẽ không muốn những con creep sinh sản (vì chúng sẽ không thể tiếp cận người chơi từ đó) .
Có thể bằng cách nào đó để GPU xác định những điểm sinh sản này cho tôi, hoặc một số cách khác nhau? Tôi nghĩ về việc tạo ra các vectơ giữa điểm được đề xuất ở rìa màn hình và người chơi, sau đó theo dõi nó cứ sau 10 voxels, và xem liệu một bức tường có va chạm hay không, trước khi sinh ra một đơn vị ở đó.
Tuy nhiên, giải pháp đề xuất ở trên có thể quá tốn CPU.
Bất kỳ đề nghị về vấn đề này?
Lưu ý 1 Đối với các đơn vị sinh ra, tôi không muốn sử dụng bất kỳ hình thức tìm đường nào để tránh va chạm vào tường khi các đơn vị này chạy về phía người chơi. Do đó, các đơn vị phải sinh sản ở rìa màn hình, tại vị trí mà việc đi theo đường thẳng về phía người chơi sẽ không va chạm với bất kỳ bức tường nào.