Điều gì sẽ là sự khác biệt, mục đích khôn ngoan, giữa hai phương pháp này trong vòng lặp kết xuất của tôi?Sự khác biệt giữa glkView: drawInRect: và glkViewControllerUpdate :? OpenGL ES 2 - iOS
Apple có này để nói ....
Về cập nhật() Bộ điều khiển xem gọi glkViewControllerUpdate đại biểu của nó: phương pháp. Đại biểu của bạn nên cập nhật dữ liệu khung không liên quan đến việc hiển thị kết quả cho màn hình.
Giới thiệu drawInRect: đối tượng GLKView làm cho bối cảnh OpenGL ES của nó bối cảnh hiện tại và liên kết framebuffer của nó làm mục tiêu cho lệnh hiển thị OpenGL ES. Sau đó, phương thức đại biểu của bạn sẽ vẽ nội dung của chế độ xem.
Vì vậy, về cơ bản, khi tôi tạo GLKView trong bộ điều khiển chế độ xem của tôi, bộ điều khiển đó sẽ trở thành mục yêu thích, vì vậy tôi đang xem xét các phương pháp này cạnh nhau.
Tôi giả định rằng bản cập nhật() nên chứa mọi biến đổi hoặc logic khác.
Tôi hiểu. Vì vậy, ví dụ trong Space Invaders, một con tàu mới vào chế độ xem mô hình hoặc người chơi phóng to trên một hành tinh sẽ là trách nhiệm cập nhật. Trong khi drawInRect: chỉ đơn giản là dự án ma trận, lên đến tốc độ khung hình mong muốn, nhưng không phải lúc nào cũng có thể theo kịp phụ thuộc vào tải. –
Có - mọi logic cập nhật trạng thái của trò chơi sẽ là một phần của bản cập nhật, cho dù đó là thêm mô hình mới hoặc di chuyển máy ảnh. – Tommy