Sự kiện, đăng bài và xếp hàng


7

Tôi đang triển khai một hệ thống nhắn tin và tôi đang tự hỏi về cách tôi nên xử lý các sự kiện. Tôi có nên đăng chúng và gửi chúng cho những người nghe thích hợp ngay khi tôi nhận được chúng hay tôi nên xếp hàng chúng và chỉ gửi đi khi tôi được nhắc đến (rất có thể là bởi vòng lặp trò chơi chính)?


Chỉnh sửa: Thêm thông tin

Trò chơi của tôi là một nền tảng 2D, vì vậy hiệu suất sẽ không khó để đạt được. Xem xét những gì Roy T. nói , tôi đoán tôi cũng có thể gửi sự kiện ngay khi nó được đăng; dường như không cần phải xếp hàng (tất nhiên trừ khi tôi thiếu thứ gì đó).

Câu trả lời:


3

Chúng tôi thực sự cần thêm thông tin, nhưng nếu bạn đang viết một hệ thống thực sự ưa thích thì một bộ điều phối sẽ rất tuyệt vì sau đó bạn có thể ưu tiên các sự kiện (ví dụ: các sự kiện mạng có mức độ ưu tiên cao hơn các sự kiện trò chuyện).

Tuy nhiên, một người điều phối thực sự có thể sẽ quá mức cần thiết và thậm chí có thể khiến mọi thứ chậm hơn vì sắp xếp theo mức độ ưu tiên và nếu bạn không nghĩ rằng nó đủ cẩn thận, bạn có thể bỏ đói các sự kiện ưu tiên thấp.

Dù sao, với nhiều thông tin hơn, chúng ta có thể đoán tốt hơn những gì sẽ tốt hơn.

Biên tập:

Như một phản hồi cho bạn thêm thông tin: không, có vẻ như bạn không cần một người điều phối thích hợp :)


Tôi đã thêm một số chi tiết cho câu hỏi của tôi.
Paul Manta

5

Bạn có thể muốn có cả hai có sẵn và sử dụng đúng cho người nghe hiện tại. Chẳng hạn, hệ thống thực thể của bạn có thể muốn biết ngay lập tức để loại bỏ kẻ thù, vì vậy nó không được cập nhật và di chuyển, nhưng hệ thống kho của bạn có thể chờ vì người chơi sẽ không thể sử dụng vật phẩm cho đến lần tiếp theo khung nào.

Vì vậy, khi liên kết với sự kiện, người nghe nên chỉ định khi nào nó muốn được cập nhật:

  • ngay
  • ở cuối khung
  • ở đầu khung tiếp theo
  • ngay trước khi cập nhật tiếp theo của người nghe
  • Vân vân

Trong một hệ thống lớn hơn, một cái gì đó như thế này sẽ rất tốt, nhưng tôi không nghĩ quy mô của dự án hiện tại của tôi biện minh cho thời gian tôi cần dành để thực hiện điều này.
Paul Manta

4
Chắc chắn bạn biết rõ nhất những gì bạn cần. Nhưng bạn đã hỏi cách tiếp cận nào là tốt nhất và câu trả lời là cho một mức độ phức tạp tối thiểu nào đó bạn sẽ tìm thấy tình huống mà bạn muốn cả hai.
tenpn

2

Người nghe sự kiện C # được gọi theo thứ tự đăng ký, ngay lập tức khi sự kiện xảy ra. Tôi sẽ làm như vậy. Tôi đang sử dụng những thứ này trong trò chơi 2D của mình và cho đến nay nó vẫn hoạt động rất tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.