Tôi đang làm việc trên bản trình diễn trò chơi 2D (xem từ trên) tương đối nhỏ, sử dụng OpenGL cho đồ họa của tôi. Nó sẽ cho một góc dựa trên tàng hình cơ bản, và như vậy với tất cả kẻ thù của tôi, tôi vẽ một vòng cung để người chơi biết họ đang tìm kiếm ở đâu.OpenGL- Phương pháp cắt/bẻ khóa 2D đơn giản?
Một trong những vấn đề của tôi cho đến nay là khi tôi vẽ cảnh hồ quang này (như là một đa giác đầy) một cách tự nhiên cho thấy thông qua bất kỳ bức tường trên màn hình kể từ khi có gì ngăn cản nó:
tôi m tò mò làm thế nào tôi có thể tốt nhất có thể ngăn chặn một cái gì đó như thế này. Tôi đã có mã tại chỗ sẽ cho phép tôi phát hiện đường giao nhau với tường và vân vân (để phát hiện cảnh kẻ thù), và về mặt lý thuyết tôi có thể sử dụng điều này để phát hiện trường hợp đó và vẽ đa giác cho phù hợp, nhưng điều này có khả năng khá khó sử dụng và/hoặc không hiệu quả, vì vậy tôi đoán nếu có bất kỳ hệ thống OpenGL tích hợp nào có thể làm điều này cho tôi thì có lẽ nó sẽ làm tốt hơn nhiều.
Tôi đã thử tìm kiếm các câu hỏi về các chủ đề như cắt/tắc nhưng tôi thậm chí không chắc chắn nếu đây là chính xác những gì tôi nên tìm kiếm; kỹ năng OpenGL của tôi bị giới hạn. Có vẻ như bất cứ điều gì sử dụng, nói rằng, glClipPlanes hoặc glScissor sẽ không phù hợp với điều này do số lượng lớn các bức tường cá nhân và như vậy.
Cuối cùng, đây chỉ là một bản demo tôi đang làm trong thời gian rảnh rỗi của mình, vì vậy đồ họa không chính xác là nỗi lo chính của tôi. Nếu có một cách (không hợp lý) không đau để làm điều này thì tôi hy vọng ai đó có thể chỉ cho tôi đi đúng hướng; nếu không có cách nào đơn giản thì tôi có thể bỏ qua vấn đề ngay bây giờ hoặc tìm cách giải quyết khác.
Tôi thực sự đang tìm kiếm thứ gì đó tương tự, để xử lý bóng trong trò chơi xếp hình từ trên xuống. Nghi ngờ của tôi cho đến nay đã được dọc theo dòng raycasting (chậm nhưng hoàn hảo) và tạo ra một mặt nạ từ các occluders và một số loại cơ khí esque lập bản đồ bóng. – ssube
Bạn đã cân nhắc sử dụng đèn chiếu sáng OpenGL chưa? Nó có thể có nghĩa là một chút công việc, nhưng một vị trí ánh sáng thích hợp có thể cho hiệu quả mong muốn. – Keith
@Keith: Cảm ơn, đó có thể là một ý tưởng hay. Kinh nghiệm của tôi với ánh sáng cũng bị hạn chế, và tôi có lẽ sẽ cần phải thực hiện một số điều chỉnh để vẽ mã của tôi để làm cho nó tất cả các công việc. Nhưng tôi sẽ ghi nhớ điều đó nếu không có gì tốt hơn. – Linkage