gần đây tôi đã cố gắng viết mã trò chơi trong C#. Tôi không sử dụng XNA cho điều này, vì tôi nghĩ rằng tôi sẽ tìm hiểu thêm nếu tôi mã hóa các trò chơi từ đầu (mặc dù tôi đang sử dụng một công cụ đa phương tiện).Lập trình trò chơi - giao tiếp giữa các đối tượng trò chơi trong 2d
Tôi đang cố gắng thiết kế trò chơi RPG 2D - một chút tham vọng mà tôi biết, tuy nhiên tôi hiểu rõ ít nhất các phần cơ bản của trò chơi (ví dụ: mã 'đĩa nồi hơi') và tôi ' đã đạt đến một phần mà tôi không biết phải đi đâu từ đây.
Trong trò chơi 2D, bạn tiến bộ thông qua trò chơi bằng cách đi bộ xung quanh các khu vực khác nhau. Khi bạn nhấn 'ô cửa sổ', bạn sẽ được chuyển đến khu vực tiếp theo, v.v.
Tôi đang gặp khó khăn khi tìm hiểu cách thiết lập đối tượng khu vực này. Đây là ý tưởng đầu tiên của tôi: Mỗi khu vực có một vài cấu trúc bộ sưu tập khác nhau (ví dụ, một quadtree tầm nhìn, một quadtree va chạm, một danh sách thực thể AI vv). Vì vậy, nếu tôi đã thêm một thực thể đối phương vào trò chơi, nó sẽ được đưa vào quadtree tầm nhìn, quadtree va chạm (vì bạn có thể va chạm với các thực thể) và danh sách thực thể AI. Khi khu vực nhận được một yêu cầu cập nhật, nó sẽ yêu cầu mỗi cấu trúc này tự cập nhật, để cho các thực thể tự cập nhật. Tất cả tốt, cho đến nay.
Câu hỏi của tôi là: Điều gì sẽ xảy ra nếu kẻ thù này cần giao tiếp với các đối tượng khác? Ví dụ: có thể cần phải biết liệu người chơi có ở trong phạm vi nhất định của nó hay không. Hoặc liệu nó có bị người chơi đánh hay không. Hoặc nơi tất cả các đối tượng collidable trong khu vực (vì vậy nó có thể pathfind).
Giải pháp đầu tiên (và kém) cho vấn đề này đơn giản là chuyển từng thực thể tham chiếu đến từng bộ sưu tập. Nhưng điều này rõ ràng khuyến khích các đối tượng kết hợp chặt chẽ, đó là không tốt.
Giải pháp thứ hai mà tôi đưa ra là để mỗi thực thể có thể truy vấn khu vực, thông qua cấu trúc thư. Vì vậy, một kẻ thù sẽ có thể nói "Hãy cho tôi một danh sách của mỗi thực thể trong vòng X khoảng cách của vị trí của tôi" và khu vực sẽ trả về một câu trả lời. Tuy nhiên, điều này sẽ ngày càng trở nên khó khăn vì tôi phải viết nhiều hơn và nhiều khả năng hơn vào khu vực ("Hãy cho tôi một danh sách các thực thể không nằm trong khoảng cách X", "Hãy cho tôi một danh sách tất cả các thực thể có sức khỏe thấp hơn X "vv).
Điều tôi đang tìm kiếm là giải pháp kiểm tra thời gian cho vấn đề liên lạc giữa các đối tượng và về cơ bản cách thiết lập một khu vực. Tôi cho rằng nó sẽ cần một số loại hệ thống nhắn tin, mặc dù tôi không chắc chắn.
Cảm ơn bạn đã đọc.
Wall of text là đáng sợ – Chad