CHƯƠNG XII – DEBUG GAME

Link Source code HD không che: https://goo.gl/NstiSQ 
Các bạn nên mở sources code vừa đọc vừa so sánh với tut này vì mình sẽ giải thích những gì trong sources code.

1. Debug bằng Console

  • Việc Debug là không thể thiếu nó giúp ta xử lý lỗi và biết được sai chỗ nào. In ra Console (trace) cũng là một cách bạn in text ra output của Visual Studio để có thể check được thông tin bạn muốn in ra.

  • Phần Trace Debug của mình sử dụng giống như Cocos2d-x.

  • Mình tạo file GameLog.h và GameLog.cpp ở đó có hàm GAMELOG() dùng để in text ra màn hình. Các ví dụ mình có làm trong source code. Cơ chế hoạt động giống hàm print của C++.

GAMELOG("Game FPS: %f", 1.0 / dt);






2. Debug bằng vẽ lên màn hình

  • Đôi khi in ra màn hình không thể giải quyết được hết lỗi hay mà thông tin bạn muốn kiểm tra, ví dụ như Quadtree mình uốn kiểm tra các node và thông tin các Entity có hiển thị đúng không thì làm sao? Và việc vẽ lên màn hình sẽ giúp ta làm điều này.
  • Mình cũng tìm kiếm trên mạng và tìm được cách vẽ các đường thẳng lên màn hình trong DirectX và từ đó mình phát triển lên class là GameDebugDraw sẽ có thể vẽ được các đường thẳng, các hình chữ nhật lên màn hình có thể qua Camera hoặc không. Các bạn xem thêm trong source code nhé.
void DrawQuadtree(QuadTree *quadtree)
void DrawCollidable()

  • 2 hàm này dùng để vẽ ở DemoScene nhé các bạn vào đây xem cách vẽ lên, cũng đơn giản hoy. 


Như các bạn thấy chỉ phần những viên gạch ở giữa mới được vẽ lên vì nó nằm trong những  thành phần có khả năng va chạm.


Tổng kết

  • Các kiểu debug này mình tìm tòi trên mạng nên sẽ nhiều chỗ mình không giải thích (như cái output ra console) vì mình sử dụng copy paste.
  • Debug là phần thêm tuy nhiên nó cũng sẽ làm tụt FPS game nếu vẽ quá nhiều.
Share on Google Plus

About Lộc Thọ

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 Comment:

Post a Comment