Thời gian hoàn thành chu kỳ chậm

Một phần của tài liệu nghiên cứu và phát triển game trên windows mobile (Trang 83)

Vấn đề

Như đã đề cập trong mục 5.1.3, thời gian ngủ sau mỗi chu kỳ được tính bằng công thức

t = tpc – (T2-T1)

Chính vì vậy, với các thiết bị quá yếu, thời gian để hoàn thành một chu kỳ hoạt cảnh lớn hơn khoảng thời gian đặt ra để tính thời gian ngủ (tpc). Lúc này,

không thể tính toán được thời gian ngủ.

Giải pháp

Như đã đề cập trong mục 5.1.1, chi phí để vẽ hình ảnh từ vùng đệm ra màn hình sẽ tốn nhiều thời gian nhất trong một chu kỳ của game. Chi phí này cũng khác nhau trong mỗi chu kỳ nên với các máy có cấu hình yếu, thỉnh thoảng vấn đề này sẽ được phát sinh. Đôi khi, các vấn đề trên cũng xảy ra khi trong vòng lặp xử lý chu kỳ đó, ta cần phải thực hiện các thuật toán phức tạp khiến thời gian thực hiện lâu hơn bình thường.

Bên cạnh đại lượng FPS, chúng em đề xuất đại lượng khác sẽ rất hữu dụng trong việc đo lường tốc độ xử lý hoạt cảnh để cân đối tốc độ game cho phù hợp. Đó là UPS (Update Per Second) số lần cập nhật trên giây.

Mỗi chu kỳ thực hiện một thao tác cập nhật và một thao tác vẽ lên bộ đệm rồi mới vẽ ra màn hình. Như đã phân tích ở trên thì thời gian tiêu tốn phần nhiều là

cho thao tác vẽ ra màn hình. Vì vậy khi FPS tụt xuống quá nhiều so với giá trị mong muốnthì cách để tăng tốc độ game và giữ cân bằng gần với giá trị FPS mong muốn là tăng giá trị UPS.

Để hiện thực với giải pháp đề xuất ở trên, khi giá trị FPS bị tụt quá giới hạn thì thực hiện giai đoạn Update mà bỏ qua giai đoạn vẽ ra màn hình. Có nghĩa là

thực thi Update() 2 lần liên tiếp khi cần thiết. Điều này sẽ làm cho tốc độ tương tác của game tốt hơn. Kỹ thuật này cũng được sử dụng trong một số game và thường được gọi là kỹ thuật Skip Frame.

Kết luận

Bằng việc sử dụng kỹ thuật Skip Frame, chúng em đã xử lý cho trường hợp thời gian thực hiện chu kỳ của game lớn hơn thời gian được tính dựa trên FPS. Nhờ đó, giải pháp xử lý cho cơ chế vẽ hình đã giải quyết được hết các trường hợp có thể.

Một phần của tài liệu nghiên cứu và phát triển game trên windows mobile (Trang 83)