Tôi đang tạo trò chơi 2d trong XNA. Khi sử dụng các thành phần trò chơi có thể kéo được, một thành phần nào tốt hơn cho hiệu suất?Làm thế nào để ngăn chặn việc vẽ thành phần XNA khi nó bị tắt màn hình?
1.Khi một thành phần không nằm trên màn hình, hãy xóa nó khỏi danh sách thành phần và khi màn hình của nó thêm vào.
2.When offscreen nó không chạy chức năng vẽ của mình (bằng cách sử dụng một "tỉnh táo" bool lĩnh vực và một lệnh if xung quanh mọi thứ trong chức năng vẽ)
Tôi đang sử dụng phương pháp 2 vào lúc này và nó hoạt động tốt. Cus tiện dụng của nó các draworder của các thành phần sẽ không thay đổi (nếu tôi loại bỏ và thêm lại nó nó sẽ, và tôi sẽ cần thêm mã để quản lý) Trong thực tế nó chỉ xảy ra với tôi rằng nếu nó không có trong danh sách các thành phần nó sẽ không cập nhật và tôi sẽ cần một cái gì đó khác để theo dõi xem nó trên màn hình hay không ..
Ngoài ra tôi không có phiên bản ưa thích của studio trực quan với profiler nên tôi chỉ hỏi ở đây mọi người nghĩ gì từ trải nghiệm của họ
Bạn không cần một trình định dạng đắt tiền để xác định nhanh hơn trong thử nghiệm 'Đồng hồ bấm giờ 'đủ tốt cho điều đó. Profiler sẽ giúp giải thích * tại sao * một nhanh hơn cái kia (cụ thể là, phần nào của thuật toán này chậm, tiêu thụ bộ nhớ nhiều nhất, tôi cần phải bận tâm tối ưu hóa phần này, v.v.). – Servy
Tôi sẽ tin rằng lựa chọn 2 sẽ nhanh hơn. – Cyral
Bạn có thể sử dụng bao nhiêu 'DrawableGameComponent'? Nếu bạn đang sử dụng rất nhiều trường hợp của nó, bạn có thể sử dụng sai nó. –