[Lập Trình Game] Hiển thị FPS cho game bằng Godot Engine
FPS (frames per second) hay còn gọi là khung hình trên giây. Nếu trong một giây mà máy tính của bạn hiển thị càng nhiều khung hình thì game càng mượt. FPS phụ thuộc tốc độ mạng và phần cứng máy tính. Để hiển thị FPS của Game do bạn lập trình bằng Godot Engine là bao nhiêu thì hãy làm theo hướng dẫn dưới đây nhé.
Hiển thị FPS cho game bằng Godot Engine
FPS
Đầu tiên các bạn tạo cho mình 2 Node là CanvasLayer và label. Label là node con của canvaslayer
Và mình đổi tên label -> fps label
Các bạn tạo cho mình 1 cái script ở Node World
ở phần khai báo các bạn khai báo cho mình như sau
onready var fps_label = get_node("CanvasLayer/fps_label")
get_node()
là lấy địa chỉ node của bạn
onready var
là khai báo biến luôn luôn sẵn sàng VD như này:
- Var bình thường là cây súng không có đạn
- Onready var là cây súng đã sẵn sàng lên đạn
- Khai báo var trong
_physical_process
thì chỉ khi nào màphysical_process
hoạt động thì var nó mới hoạt động
Thêm cho mình hàm func _process(delta)
:
_process(delta
)
: là hàm được gọi trên mỗi khung nhàn rỗi
_ physical _process
: là 1 chức năng gọi trên mọi khung vật lý
Bạn có thể tra ở tài liệu của godot: https://docs.godotengine.org/en/3.0/classes/class_node.html#class-node-process
Và nếu bạn sử dụng hàm _process(delta)
: bạn cần phải kích hoạt nó ở hàm func _ready bằng lệnh set_process(true)
Và quay trở lại phần chính nào.
Ở _process
các bạn gõ cho mình
func _process(delta):
fps_label.set_text("FPS: " + str(Engine.get_frames_per_second()))
Sau khi gõ xong chạy game sẽ thấy fps đã được hiện
Note: Phải chỉnh lại vị trí của cái label nếu bạn muốn thấy fps nhé
Và bạn cũng có thể in FPS ra phần debug bằng cách sau
Project > Project Setting > Tìm FPS > nhấn Debug Settings > Click Print FPS On > chạy game để ý debug sẽ thấy fps được hiển thị
Deathgm!