Dùng hàm GetAsyncKeyState trong vòng lặp while (true)

Em dùng hàm GetAsyncKeyState trong vòng lập while (true) nhưng mà khi ấn phím một lần thì giống như nó bị đè phím, nó thực hiện rất nhiều lần câu lệnh em viết khi bắt phím đó. Vậy giờ làm sao để sửa ạ?

Phải delay chứ bạn :slight_smile: sleep(100); //100ms

Thực ra bạn nên bắt event chứ ko nên đọc key.

2 Likes

Hi DarkMagic.
Bạn định làm gì ?
http://www.cplusplus.com/forum/windows/6632/

1 Like

À cảm ơn bạn nhiều :grinning:

Mình định làm trò chơi trên console nhưng mà chưa hiểu rõ mấy cái hàm nhận phím này lắm :joy:

Hi DarkMagic.
GetAsyncKeyState

  1. Get là hàm trả về giá trị hoặc trạng thái.
  2. Async là hàm bất đồng bộ nghĩa là thay vì nó lock lại (hàm scanf) đợi khi đọc một ký tự thì nó kiểm tra có ký tự nòa không và trả về luôn. (Bạn xem các tài liệu đồng bộ và bất đồng bộ).
  3. Key đối tương lấy thông tin là một nút ấn.
  4. State trạng thái của nút đó ấn hay không được ấn,

P/S Nếu làm game thì bạn có thể bắt đầu với SFML luôn.

1 Like

Chắc do code sai. Chứ chưa bị thế bao giờ.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?