Tôi đang làm việc trên một trò chơi và tôi đã nghĩ ra một vấn đề khá thú vị: những cách thông minh để thu hút các ngôi sao.Những cách khôn ngoan để vẽ một ngôi sao Star
Đó là trò chơi 2D nên hành động có thể cuộn theo hướng X và Y. Ngoài ra, chúng tôi có thể điều chỉnh tỷ lệ để hiển thị nhiều hơn hoặc ít hơn khu vực phát. Tôi cũng thích ngôi sao để có thị sai giả tạo ấn tượng sâu sắc.
Ngay bây giờ tôi đang làm điều này theo cách truyền thống, bằng cách có một mảng lớn các ngôi sao, mỗi ngôi sao được gắn thẻ bởi một yếu tố 'chiều sâu'. Để vẽ, tôi dịch từng ngôi sao theo vị trí máy ảnh nhân với độ sâu, vì vậy một số ngôi sao di chuyển rất nhiều, và một số di chuyển một chút. Điều này tất cả hoạt động tốt, nhưng tất nhiên kể từ khi tôi có một số hữu hạn của các ngôi sao trong mảng của tôi, tôi có vấn đề khi máy ảnh di chuyển quá xa hoặc chúng tôi thu nhỏ quá nhiều. Đây là tất cả sẽ làm việc, nhưng liên quan đến rất nhiều mã và trường hợp đặc biệt.
Điều này xúc phạm cảm giác thanh lịch của tôi. Đã có một cách tốt hơn để đạt được điều này.
Tôi đã xem xét việc tạo các ngôi sao theo cách thủ công, điều này cho phép tôi có số lượng không giới hạn: ví dụ: bằng cách sử dụng một hạt giống cố định và PRNG để xác định tọa độ. Tôi sẽ cần phải chia bầu trời thành gạch, tạo ra hạt giống bằng cách băm các tọa độ ngói, và sau đó vẽ, nói, 100 ngôi sao cho mỗi gạch. Điều này cho phép tôi mở rộng sân sao của mình vô thời hạn theo mọi hướng trong khi vẫn chỉ cần xem xét các gạch có thể nhìn thấy --- nhưng điều này không làm việc với yếu tố 'chiều sâu', vì điều này cho phép các ngôi sao đi lạc bên ngoài ngói của chúng. Tôi có thể chỉ đơn giản là sử dụng nhiều ngôi sao không phải là thị sai không sao bằng cách sử dụng thuật toán này nhưng điều này đánh tôi như gian lận.
Và, tất nhiên, tôi cần phải làm tất cả các khung hình này, vì vậy nó phải nhanh.
Tất cả các bạn đều nghĩ gì?
Hãy thử http://gamedev.stackexchange.com, họ có thể có nhiều trải nghiệm hơn với các sự cố như vậy. –
Tôi thậm chí không biết rằng đã tồn tại; ta. Bất kỳ quản trị viên nào, hãy tự do chuyển câu hỏi ở đó ... –
Bất kỳ giải pháp nào bạn đưa ra, nếu bạn cần thêm hiệu suất chuyển đổi mã của mình để sử dụng số điểm cố định số nguyên thay vì số dấu chấm động. – user499211