ในที่สุดฉันก็เลยได้เล่นกับ XNA และเล่นด้วยการทำเกม 2D (ฉันมีทรัพย์สินทางศิลปะมากมายจากเพื่อนที่พัฒนาบน iOS)
ดูเหมือนจะเป็นเรื่องง่ายมากที่จะทำและออกมาจากกล่อง แต่ฉันถูกทิ้งไว้กับสิ่งต่าง ๆ ตั้งแต่วรรณกรรมส่วนใหญ่ (หนังสือที่ฉันซื้อมาเป็นตัวอย่าง) ไม่สนใจ 2D มากนัก
ฉันขอขอบคุณการชี้แจงหรือชี้ไปที่ข้อมูลเพิ่มเติมเกี่ยวกับภารกิจต่อไปนี้:
จุดบริการเกมคืออะไร ฉันเข้าใจถึงสำนวนทั้งหมดของการลงทะเบียนวัตถุเป็นบริการเพื่อให้ GameComponent อื่น ๆ สามารถคว้ามันได้อย่างไรสิ่งนี้ทำให้เอาชนะได้ง่ายเพียงแค่ทำให้เป็นสาธารณะหรือคงที่? ตัวอย่างเช่นหนังสือของฉันแนะนำให้ลงทะเบียนวัตถุ SpriteBatch ในคลาส Game.cs ฉันไม่แน่ใจว่าสิ่งนี้จะดีกว่าที่จะทำให้เป็นแบบสาธารณะ / คงที่เนื่องจากควรมีเพียงหนึ่งตัวอย่างของเกม anyways (ซิงเกิลตัน)?
ฉันสับสนเมื่อฉันควรสืบทอดจาก GameComponent หรือ RenderableGameComponent ฉันกำลังพยายามติดตามการออกแบบผู้จัดการ / ผู้ควบคุมซึ่งเอนทิตีทั้งหมดจะถูกสร้าง / เป็นเจ้าของโดยผู้จัดการเดียวและเหมือนกันสำหรับสิ่งอื่น ๆ ขณะนี้ฉันมีผู้จัดการ / ผู้ควบคุมแต่ละคนที่สืบทอดมาจาก GameComponent แต่สิ่งนี้ทำให้เกมวัตถุเป็นเจ้าของผู้จัดการทั้งหมดและเรียกการปรับปรุงด้วยตนเองและวาดได้อย่างไร
ฉันสังเกตเห็นว่า Initialize เรียกก่อน ContentLoad () ฉันพบว่ามันน่ารำคาญเนื่องจากใน Initialize ของฉันเป็นที่ที่ฉันต้องการสร้างเอนทิตีของฉัน (เช่น Sprite, Player ฯลฯ .. ) แต่ฉันไม่สามารถให้พวกมันโหลดได้ SpriteSheets หรือ Textures ตั้งแต่การโทรเพื่อโหลดมันยังไม่เกิดขึ้น ฉันกำลังเริ่มต้นอย่างไม่ถูกต้องหรือผู้คนเพิ่งกำหนดพื้นผิวเพิ่มเติมใน ContentLoad หรือไม่
สิ่งเหล่านั้นดูเหมือนจะเป็น " WTF " ที่ใหญ่ที่สุดของฉันที่ไม่เข้าใจจริงๆ