2012-06-04 23 views
13

Tôi có 3 con số trên phần dưới cùng bên trái của màn hình trên dự án Cocos2D 2.0 của tôi:Cocos2d 2,0-3 số phía dưới bên trái

82 
0.016 
60.0 

60 có lẽ là FPS và những gì về hai người kia? Như tôi đã nhớ, các phiên bản trước của Cocos chỉ có số FPS.

Bất kỳ manh mối nào? thanks

+0

Số đầu tôi tin là số lần phun. Giữa tôi không chắc chắn về. –

+0

nó có ý nghĩa ... 82 sprites. Đúng. Nếu điều này giúp, số giữa dao động giữa 0,016 và 0,017 ... – SpaceDog

+0

Nếu tôi nhớ chính xác, đó là mili giây cho một cái gì đó. Có thể là mili giây của FPS? Nhưng giữa không quan trọng lắm, chỉ có phần trên và dưới thực sự quan trọng. –

Trả lời

37
82 <-- number of draw calls 
0.016 <-- time it took to render the frame, here: 1.0/60.0 = 60 fps 
60.0 <-- frames per second 

Số đầu tiên (82) là số lần gọi vẽ (tương đối cao). Thông thường, mỗi nút hiển thị thứ gì đó trên màn hình (sprites, label, fx hạt, vv) tăng số đó lên một. Rút cuộc gọi là tốn kém, vì vậy điều quan trọng là phải giữ số đó giảm. Một cách để làm như vậy là bằng cách thực hiện các cuộc gọi theo đợt - cocos2d v3 thực hiện điều này một cách tự động.

Thời gian cần để hiển thị khung, tính bằng giây. Vì bạn cần phải vẽ một khung mới mỗi 0,016666666 giây để đạt được 60 khung hình mỗi giây (1/60 = 0,0166…) nó chỉ là nghịch đảo của tốc độ khung hình.

Số cuối cùng là số khung hình trên giây, còn gọi là tốc độ khung hình là fps. Giá trị này, giống như giá trị trước đó, được tính trung bình trên nhiều khung hình để nó không dao động nhiều.

Lưu ý rằng thiết bị iOS luôn có VSynch (đồng bộ hóa dọc). Một trò chơi có thể hiển thị khung hình cứ sau 0,017 giây - nếu mỗi khung hình mất 0,017 giây để tính toán, tốc độ khung hình sẽ giảm một nửa xuống 30 khung hình/giây. Bạn chỉ có thể có fps ở các bước cụ thể: 60, 30, 20, 15, 12, 10 ...

Vì màn hình fps được tính trung bình trên một vài khung, nó ẩn thực tế này. Vì vậy, nếu số liệu thống kê hiển thị hiển thị 45 khung hình/giây sẽ là một chuỗi các khung nơi mỗi khung hình khác mất nhiều thời gian hơn 0,0166 giây. Trong số fps, khung hình/giây của khung hình gần đây nhất là: 60, 30, 60, 30, 60, 30.

+0

cảm ơn tuyệt vời. Trong thực tế, ứng dụng này không phải là rất tối ưu hóa ngay bây giờ, nhưng nó sẽ được. Tối ưu hóa thường là điều cuối cùng tôi làm. Cảm ơn lời giải thích. – SpaceDog

2

Số trên cùng là số sprites trong CCLayer của bạn, v.v.

Giữa là phần nghìn giây của FPS.

Phía dưới là khóa học FPS của bạn! :)

+1

Số trên cùng là số lượng cuộc gọi vẽ, không phải số lần phun. – LearnCocos2D

+0

@ LearnCocos2D Sự khác biệt giữa cái này và cái kia là gì? –

+0

mỗi đối tượng vẽ tạo ra một cuộc gọi vẽ tức là mỗi nhãn, sprite, mỗi hệ thống hạt, mỗi nút lô thêm 1 lệnh gọi vẽ. Vẽ cuộc gọi là một thay đổi trạng thái trong opengl, và thay đổi trạng thái (tức là vẽ từ một kết cấu khác nhau) là một hoạt động tốn kém. Vì vậy, kết cấu càng lớn. – LearnCocos2D

Các vấn đề liên quan