Thật không may, câu trả lời là vẽ ít hơn. Tôi đã tìm thấy nút cổ chai với các ứng dụng dựa trên canvas (trên bất kỳ nền tảng nào, thực sự) là thời gian cần thiết để thực sự vẽ pixel.
Dưới đây là một số điều cần thử:
Sử dụng một vài lớp vải. Vẽ nền của bạn thành một lớp trong khi vẽ các đối tượng của bạn sang một lớp khác (vị trí tuyệt đối trên đỉnh của lớp nền). (Lưu ý: Tôi chưa thử cái này trên safari di động, nhưng nó có thể giúp trên các nền tảng khác)
Chỉ vẽ lại các họa tiết đã thay đổi. Điều này là khó khăn nhưng chắc chắn làm tăng hiệu suất. Ý tưởng là để lưu trữ xem một sprite có cần được vẽ lại hay không và chỉ vẽ lại các sprite cần nó cùng với nền phía sau chúng. (Điều này cũng cần xếp tầng cho các đối tượng khác mà sprite có thể bị chồng chéo.)
Điều phát triển trên Chrome là a) công cụ JavaScript (V8) của nó nhanh như địa ngục và b) các phiên bản mới nhất (7,8,9) đều có một số khả năng tăng tốc GPU khi kết xuất canvas. Điều đó kết hợp với thực tế là phần cứng di động không mạnh bằng máy tính để bàn / máy tính xách tay của bạn có nghĩa là sẽ rất khó để có được bất cứ nơi nào gần hiệu suất tương tự trên safari di động.
Tôi nghĩ, hiện tại, cách tiếp cận tốt nhất có thể là nhắm mục tiêu trò chơi của bạn tại safari trên thiết bị di động ngay từ đầu và thử và xây dựng một trò chơi không được vẽ lại chuyên sâu.