Throttle và Debounce

Plugin này cung cấp truy cập đến hai điều kiện đặc biệt: Not more than once in <X> secondsOn a deferred event.

Ghi chú

Do hạn chế của lập trình visuell trong Construct 3, các điều kiện này được thực hiện qua "vòng lặp giả", vì vậy bạn có thể thấy logo vòng lặp bên trái tên.

Tuy nhiên, đây là điều kiện, không phải vòng lặp.

Nếu bạn thích sử dụng JavaScript hơn, bạn có thể xem các bài viết sau: Debounce trên ví dụ form tìm kiếmThrottle trên ví dụ thay đổi trang khi cuộn.

Throttle

Một số lúc, một phần của trò chơi có thể ảnh hưởng lớn đến hiệu suất chung. Ví dụ như xử lý vật lý hoặc trí tuệ nhân tạo.

Do tính phức tạp của các loại tính toán như vậy, tốt nhất là tránh sử dụng chúng quá thường xuyên. Đối với các trường hợp như vậy, thường sử dụng Every <X> seconds để chạy mã mỗi một khoảng thời gian nhất định, nhưng không phải lúc nào cũng có thể.

Nếu có một cơ chế trò chơi phức tạp nào đó chạy khi bấm vào màn hình? Trong những tình huống như vậy, khi cần giới hạn tần suất chạy mã, nhưng bạn không thể sử dụng bộ đảm bảo, bạn có thể sử dụng điều kiện đặc biệt Not more than once in <X> seconds.

Cảnh báo

Không nên sử dụng Not more than once in <X> seconds mỗi lần lặp, điều này sẽ không gây ra bất kỳ hậu quả nào, nhưng thay vào đó, tốt hơn là sử dụng Every <X> seconds.

Debounce

Một số phương thức của SDK của Yandex Games có hạn chế số lượng yêu cầu trong một khoảng thời gian đặc biệt. Nếu bạn bẻ qua các hạn chế này, trò chơi của bạn có thể bị loại trong quá trình kiểm duyệt.

Ví dụ, nếu bạn cập nhật điểm số trong bảng xếp hạng quá thường xuyên, bạn nên sử dụng điều kiện đặc biệt On a deferred event.

Tuy nhiên, nó có thể bị lẫn với điều kiện trước Not more than once in <X> seconds, vì chúng ta cũng sử dụng nó để ẩn mã không nên được gọi quá thường xuyên, vậy sự khác biệt ở đâu?

Sự khác biệt chính của chúng là Not more than once in <X> seconds giới hạn tần suất gọi, trong khi On a deferred event hoãn gọi hàm trong một khoảng thời gian, và đó chính là điều chúng ta cần, vì trong trường hợp gửi điểm vào bảng, chúng ta không cần phải gọi hàm quá thường xuyên, chúng ta chỉ cần không vượt quá hạn chế.

Biểu diễn sự khác biệt giữa Not more than once in <X> secondsOn a deferred event:


Kho lưu trữ