Vì vậy, cuối cùng tôi cũng đã chơi xung quanh với XNA và đã chơi đùa với việc tạo ra một trò chơi 2D (Tôi có một loạt tài sản nghệ thuật từ một người bạn đã phát triển nó trên iOS)
Rất nhiều thứ có vẻ dễ thực hiện và được đưa ra khỏi hộp tuy nhiên tôi bị vấp ngã vì một đống thứ vì hầu hết các tài liệu (ví dụ như những cuốn sách tôi đã mua) không quá chú ý đến 2D.
Tôi thực sự đánh giá cao bất kỳ sự làm rõ hoặc được chỉ ra thêm thông tin về các nhiệm vụ sau:
Điểm của một dịch vụ trò chơi là gì? Tôi hiểu toàn bộ thành ngữ của việc đăng ký một đối tượng là một dịch vụ để bất kỳ GameComponent nào khác có thể lấy nó, tuy nhiên làm thế nào để đánh bại nó chỉ đơn giản là làm cho nó có thể công khai hoặc tĩnh? Chẳng hạn, cuốn sách của tôi khuyên bạn nên đăng ký đối tượng SpriteBatch trong lớp Game.cs. Tôi không chắc làm thế nào điều này có thể thích hợp hơn khi chỉ đơn giản là đặt nó ở chế độ công khai / tĩnh vì chỉ nên có một phiên bản của Game anyways (singleton)?
Tôi bối rối khi tôi nên kế thừa từ GameComponent hoặc RenderableGameComponent. Tôi đang cố gắng tuân theo thiết kế Trình quản lý / Trình điều khiển, sao cho tất cả các thực thể được tạo / sở hữu bởi một người quản lý duy nhất và tương tự cho những thứ khác. Hiện tại tôi có mỗi Trình quản lý / Trình điều khiển kế thừa từ GameComponent, tuy nhiên làm thế nào để đánh bại đối tượng Game sở hữu tất cả các Người quản lý và gọi cập nhật thủ công cho họ và rút ra?
Tôi nhận thấy rằng Khởi tạo được gọi trước ContentLoad (), tôi thấy điều này gây phiền nhiễu vì trong Khởi tạo của tôi là nơi tôi muốn tạo một số thực thể của mình (ví dụ: Sprite, Player, v.v.), tuy nhiên tôi không thể cung cấp cho chúng tải SpriteSheets hoặc Textures kể từ khi cuộc gọi tải chúng chưa xảy ra. Có lẽ tôi đang khởi tạo không chính xác hoặc mọi người chỉ gán kết cấu xuống trong ContentLoad?
Chúng dường như là " WTF " lớn nhất của tôi không thực sự hiểu