Vì vậy, tôi đã suy nghĩ về cách các lớp học nguyên khối của tôi có được rất nhiều thời gian. Ví dụ, trong phương thức Character
của lớp Jump
, người ta có thể có một tham chiếu đến một đối tượng hiệu ứng âm thanh và phát nó. Bản thân nó cũng ổn nhưng khi tính đến vật lý, hoạt hình, va chạm, v.v., phương thức Jump trở nên rất lớn và Character
lớp có rất nhiều phụ thuộc vào nhiều thứ khác nhau. Tuy nhiên, điều này có thể tốt. Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta không còn muốn phát ra âm thanh khi nhân vật nhảy? Bây giờ, chúng ta phải tìm dòng mã cụ thể đó trong mớ hỗn độn của Jump
mã và nhận xét nó hoặc bất cứ điều gì.
Vì vậy, tôi đã suy nghĩ ..
Điều gì sẽ xảy ra nếu, thay vào đó, có một số loại AudioSystem
lớp và tất cả những gì nó đã làm là đăng ký vào các sự kiện ngẫu nhiên mà nó quan tâm đến các lớp khác. Ví dụ, Character
lớp có thể có một Jumped
sự kiện (tĩnh quá, tôi cho là) được nêu ra trong Character
lớp trong phương thức. Sau đó, Character
lớp sẽ không biết gì về hiệu ứng âm thanh nhỏ được phát khi nhân vật nhảy. Đây AudioSystem
sẽ chỉ là một lớp lớn mà lập trình viên có thể rút lui để kết nối các hiệu ứng âm thanh với các sự kiện nhất định xảy ra trong trò chơi thông qua việc sử dụng các sự kiện tĩnh. Sau đó, nếu nó đã quá lớn nó có thể được tách ra để lớp con như EffectsAudioSystem
, BackgroundAudioSystem
, AmbientAudioSystem
, vân vân.
Sau đó, trong các tùy chọn cho trò chơi, người ta có thể có một hộp kiểm để bật hoặc tắt các loại âm thanh này và tất cả những gì cần làm chỉ là vô hiệu hóa một hệ thống đó bằng một cờ Boolean đơn giản và duy nhất. Ý tưởng về các hệ thống này cũng có thể được mở rộng sang những thứ như vật lý, hoạt hình, v.v. đến mức hầu hết các phản hồi của trò chơi do hành động của người chơi được nối qua các hệ thống phức tạp và tách rời này.
Được rồi, vì vậy câu hỏi của tôi có thể hơi mơ hồ, nhưng làm thế nào loại điều này nghe? Tôi chưa bao giờ thực sự nghe nói nhiều về loại hệ thống này. Đây là tất cả trong đầu tôi ngay bây giờ mà không có bất kỳ mã hóa nào được thực hiện cho đến nay có lẽ đó là một trong những thỏa thuận "tốt về lý thuyết nhưng không thực tế". Loại hệ thống này sẽ hoạt động với một trò chơi lớn hơn hay cuối cùng nó sẽ bị hỏng và thậm chí trở thành một mớ hỗn độn hơn so với hệ thống ban đầu?