Tôi đang tạo một trình thu thập dungeon nhỏ trong không gian và tôi muốn nghe một số lời khuyên về cách làm cho phần phụ trợ của động cơ đẹp hơn. Về cơ bản, hiện tại mọi thứ đều dựa trên một đống rác của các nhà quản lý:
- BackgroundManager: có
AddBackground(image, parallax)
phương pháp để tạo hiệu ứng nền mát mẻ. - ConfigManager: đọc / tạo tệp cấu hình và cũng giữ dữ liệu đọc từ tệp cấu hình đó.
- DrawManager: có
Draw(sprite)
phương pháp để vẽ các thứ lên màn hình và những thứ nhưSetView(view)
,GetView()
v.v. - EntityManager: chứa tất cả các thực thể hoạt động và có các phương thức để thêm, xóa và tìm các thực thể.
- DungeonManager (thực sự gọi là GridManager, nhưng điều này là vì đơn giản): có phương pháp thích
GenerateDungeon()
,PlaceEnemies()
,PlaceFinish()
, vv
Bây giờ tôi thậm chí không đi được nửa đường trong danh sách tất cả các nhà quản lý của mình, vì vậy tôi nghĩ rằng điều này đã phải thay đổi. Trò chơi của tôi cũng dựa trên Màn hình, điều này gây khó chịu hơn vì tôi không cần một nửa những thứ mà người quản lý của tôi đang quản lý, ví dụ: menu chính (tôi không cần vật lý / thực thể / dungeon trong menu chính của mình !)
Bây giờ tôi nghĩ về việc làm cho các trình quản lý không tĩnh và đưa ScreenMainGame của tôi làm ví dụ cho tất cả các trình quản lý dành riêng cho trò chơi. Nhưng điều đó làm cho việc gọi / nhận bất cứ thứ gì liên quan đến người quản lý trở thành một mớ hỗn độn ... ví dụ, nếu tôi muốn rút ngục tối của mình từ bất kỳ nơi nào không có ScreenMainGame.Draw()
, tôi phải làm điều này ...
((ScreenMainGame)ScreenManager.CurrentScreen).GridManager.Draw()
Điều đó thực sự xấu xí.
Vì vậy, các nhà phát triển trò chơi đồng nghiệp, có ai trong các bạn có ý tưởng làm thế nào để giải quyết mớ hỗn độn này không? Tôi sẽ được đánh giá cao!