คำถามติดแท็ก xna-4.0

XNA Game Studio 4.0 เป็นสภาพแวดล้อมการเขียนโปรแกรมที่อนุญาตให้คุณใช้ Visual Studio เพื่อสร้างเกมสำหรับ Windows Phone, คอนโซล Xbox 360 และคอมพิวเตอร์ที่ใช้ Windows

3
ปรับแต่งเกม XNA 2D
มันสมเหตุสมผลไหมที่จะใช้ตรรกะเพื่อข้ามการเรนเดอร์วัตถุนอกวิวพอร์ตหรือฉันไม่ควรสนใจมันและปล่อยให้ Framework ทำมัน?
56 xna  2d  optimization  xna-4.0 

8
พวกเขาจะทำอย่างไร: กระเบื้องนับล้านใน Terraria
ฉันได้สร้างเอ็นจิ้นเกมคล้ายกับTerrariaซึ่งส่วนใหญ่เป็นสิ่งที่ท้าทายและในขณะที่ฉันคิดว่าส่วนใหญ่แล้วฉันไม่สามารถคาดเดาได้ว่าพวกเขาจัดการกับกระเบื้องที่สามารถโต้ตอบ / เก็บเกี่ยวได้นับล้าน เกมมีในครั้งเดียว การสร้างไทล์ประมาณ 500,000 แผ่นนั่นคือ 1 ใน 20 ของสิ่งที่เป็นไปได้ในTerrariaในเครื่องยนต์ของฉันทำให้อัตราเฟรมลดลงจาก 60 เหลือประมาณ 20 ถึงแม้ว่าฉันจะยังคงแสดงเฉพาะไพ่ในมุมมองเท่านั้น ใจคุณฉันไม่ได้ทำอะไรกับกระเบื้องเพียงแค่ทำให้พวกเขาอยู่ในความทรงจำ อัปเดต : รหัสถูกเพิ่มเพื่อแสดงว่าฉันทำสิ่งต่าง ๆ อย่างไร นี่เป็นส่วนหนึ่งของชั้นเรียนที่จัดการกับกระเบื้องและดึงพวกเขา ฉันเดาว่าผู้ร้ายคือส่วน "foreach" ซึ่งวนซ้ำทุกอย่างแม้แต่ดัชนีที่ว่างเปล่า ... public void Draw(SpriteBatch spriteBatch, GameTime gameTime) { foreach (Tile tile in this.Tiles) { if (tile != null) { if (tile.Position.X < -this.Offset.X + 32) …

2
ฉันจะปิดการใช้งานการกรองพื้นผิวสำหรับสไปรท์สเกลใน XNA 4.0 ได้อย่างไร
ฉันมีเทพดาที่ฉันพยายามไต่ระดับขึ้นใน XNA แต่ XNA กำลังใช้การกรองพื้นผิวบางชนิดที่ทำให้มันเรียบและทำให้ดูน่าเกลียด ฉันต้องการให้พิกเซลเพิ่มเป็นสองเท่าแทนการแก้ไข ฉันจะทำให้สำเร็จได้อย่างไร

4
XNA 3.1 และ 4.0 แตกต่างกันอย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันอยู่ห่างจาก XNA สองสามเดือนและต้องการกลับเข้าไปใหม่ ฉันมีเกมที่ฉันกำลังทำงานอยู่ แต่มันทำใน XNA 3.1 อะไรคือความแตกต่างระหว่างทั้งสองและมันคุ้มค่าการอัพเดต
17 xna  c#  xna-4.0 

2
ข้อผิดพลาดในโครงการเกม XNA 4.0 ใหม่ - ไม่พบการ์ดกราฟิกที่เหมาะสม
ความคิดเห็นใด ๆ เกี่ยวกับวิธีการแก้ไขปัญหานี้? ตามที่ฉันจำได้เกี่ยวกับ XNA 3 คือเมื่อเรียกใช้แอปพลิเคชันตั้งแต่เริ่มต้นฉันจะได้รับหน้าต่างสีฟ้าที่ไม่มีการแสดงผลใด ๆ ข้อเสนอแนะใด ๆ แก้ไข! ฉันคลิกขวาที่โครงการและเลือกคุณสมบัติและเปลี่ยนโปรไฟล์ของเกมจาก การใช้ HiDefการใช้ไฟฟ้า ตอนนี้หน้าต่างสีฟ้าที่คุ้นเคยกำลังแสดงตามที่คาดไว้ ฉันจะเสียอะไรถ้าฉันเลือก API ที่ จำกัด และทำไมฉันถึงต้องเลือกสิ่งนี้เพื่อให้ใช้งานได้
16 xna  xna-4.0 

1
ฉันจะป้องกัน XNA ไม่ให้หยุดการอัปเดตชั่วคราวในขณะที่กำลังปรับขนาด / ย้ายหน้าต่างได้อย่างไร
XNA หยุดการโทรUpdateและDrawในขณะที่หน้าต่างเกมกำลังถูกปรับขนาดหรือย้าย ทำไม? มีวิธีป้องกันพฤติกรรมนี้หรือไม่? (มันทำให้รหัสเครือข่ายของฉันยกเลิกการซิงโครไนซ์เนื่องจากข้อความเครือข่ายไม่ถูกปั๊ม)
15 xna  c#  xna-4.0  win32 

3
แกล้งทำกราฟิกสามมิติในเกมอวกาศ 2 มิติ
ปิดครั้งแรกผมรู้ว่าสิ่งที่ปัญหาภาพวาดของฉันเป็นและฉันมีความคิดที่แตกต่างกันเกี่ยวกับวิธีการแก้มัน ฉันมาที่นี่เพื่อหาวิธีการปรับเฟรมที่ถูกวาดเพื่อให้ "ภาพลวงตา" มีมิติเท่ากันได้รับการดูแล ฉันกำลังเขียนเกมดูนกแบบ 2 มิติที่เกิดขึ้นในอวกาศ ฉันกำลังพยายามใช้กราฟิกสามมิติในโลกที่อัพอยู่เหนือไม่มีโลกหมุนของเกมเหมือนในเกมไอโซโทปดั้งเดิม (โปรดจำไว้ว่าเกมเกิดขึ้นในอวกาศไม่มีภูมิประเทศ) นี่คือตัวอย่างสไปรต์ที่ฉันพยายามใช้: http://cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64.pngหมุน 64 ครั้งเกี่ยวกับแกนตั้งของมันในมุมมอง 35 องศา (aka, ISO) ภาพถูกสร้างขึ้นดังนั้นสิ่งนี้สามารถเปลี่ยนแปลงได้ เพื่อความชัดเจนฉันได้บอกว่าทิศเหนือ (ขึ้น) คือ 0 องศาและทิศตะวันออก (ขวา) คือ 90 ปัญหาของฉันคือผีสางของฉันไม่ได้ดูเหมือนว่ามันจะหันหน้าไปทางที่เกมคิดว่าเป็นเพราะความแตกต่างในเครื่องบิน 3 มิติที่ใช้ ไม่แน่ใจว่าฉันใช้คำศัพท์อย่างถูกต้องหรือไม่ยานอวกาศของฉันหมุนไปในระนาบเดียวและระนาบมุมมองกำลังคาดหวังว่าสิ่งต่าง ๆ จะหมุนบนเครื่องบินของตัวเอง นี่คือภาพของปัญหา: http://cell.stat-life.com/images/stories/AsteroidOutpost/ProjectIssue.png ด้านซ้ายฉันมีมุมมองด้านข้างทางขวาฉันมีมุมมองจากบนลงล่าง ด้านบนฉันมีมุมมองของยานอวกาศ / แผ่นสไปรต์ของโลก ที่ด้านล่างฉันมีสิ่งที่เทพดาดูเหมือนเมื่อวาดลงบนหน้าจอ ที่ด้านบนขวาเป็นเวอร์ชั่นที่เรียบง่ายของวิธีการหมุนยานอวกาศของฉัน (แม้จะมีการแยกองศาระหว่างแต่ละเฟรม) ที่มุมล่างขวาคือมุมที่สไปรต์ดูเหมือนว่ากำลังหันหน้าไปเมื่อวาดมุมใดมุมหนึ่งบนหน้าจอ ปัญหานี้เกิดขึ้นอย่างชัดเจนที่สุดประมาณ 45 องศา นี่คือภาพที่วางซ้อนกับเส้น "ระนาบหน้าจอ" ซึ่งชี้ไปในทิศทางที่เรือควรหันเข้าหา: http://cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64RedLine.pngเส้นสีแดงควรเสมอจะชี้ไปในทิศทางเดียวกันกับเรือ แต่เป็นคุณสามารถมองเห็นปัญหาการฉายที่เป็นสาเหตุของปัญหา …

2
การสร้างเอฟเฟกต์ไฟฟ้า / แสงสว่าง / เทสลาในเกม 2D XNA หรือไม่?
ฉันต้องการที่จะสร้างคานของการไฟฟ้าระหว่างจุดสองจุดคล้ายกับวิดีโอนี้: http://www.youtube.com/watch?v=eMJ8-56L3Lc เอฟเฟกต์เป็นแบบไดนามิกดังนั้นด้วยความยาวที่แตกต่างกันและการเคลื่อนไหวแบบหลอกหลอกในระหว่างจุดต่าง ๆ ซึ่งฉันมีปัญหาในการจินตนาการว่าฉันจะทำสิ่งนั้นให้สำเร็จได้อย่างไร มีข้อมูลที่เป็นประโยชน์ที่อาจชี้แนะทิศทางที่ถูกต้องหรือไม่? ฉันควรทราบว่าฉันกำลังใช้โปรไฟล์ XNA 4.0 Reach แต่ผู้ที่กำหนดเองไม่เป็นไรเพราะฉันไม่ได้กำหนดเป้าหมายเป็น Windows Phone

1
ฉันจะสร้าง Fog of War ที่ไล่ระดับสีได้อย่างไร
ฉันกำลังสร้างเกม 2D RTS บนลงล่างเพื่อวัตถุประสงค์ทางการศึกษา ปัจจุบันฉันเพิ่งคัดลอกการออกแบบ / ความคิดของ Starcraft ฉันตัดสินใจว่าฉันควรจะใช้ Fog Of War ด้วย ความคาดหวังของฉัน: พื้นที่ที่สำรวจอยู่ในขณะนี้ (หน่วยอยู่ที่นั่น) ควรจะสว่างขึ้น พื้นที่ที่สำรวจก่อนหน้านี้ (หน่วยอยู่ที่นั่น) ควรมืดกว่า แต่แสดงให้เห็นว่าสิ่งใดอยู่ที่นั่นเมื่อหน่วยของคุณอยู่ที่นั่น พื้นที่ที่ไม่ได้สำรวจ (พื้นที่ที่หน่วยของคุณไม่เคยไป) ควรเป็นสีดำสนิท ควรมีการเปลี่ยนแปลงแบบไล่ระดับสีจากแต่ละประเภท (เช่นสำรวจเป็นสำรวจก่อนหน้านี้) ดูภาพด้านล่าง เพียงแค่รายละเอียดคร่าวๆ: ฉันจะทำสิ่งนี้ได้อย่างไร
14 2d  xna-4.0  rts  fog-of-war 

3
ทำไมจึงมีเส้นคั่นระหว่างกระเบื้องของฉัน
ฉันกำลังสร้างเกมบน XNA แผนที่ถูกสร้างขึ้นโดยไทล์ ปัญหาที่ฉันสังเกตเห็นเมื่อเร็ว ๆ นี้คือ 'เส้นตาราง' ของเส้นแบ่งระหว่างแผ่นกระเบื้อง มันจะปรากฏขึ้นบางครั้งเท่านั้นและขึ้นอยู่กับตำแหน่งของกล้อง ฉันปล่อยให้ XNA จัดการตำแหน่งทำไมเส้นเหล่านี้ถึงปรากฏขึ้น นี่คือภาพที่มีเส้น: อย่างไรก็ตามหลังจากที่ขยับกล้องของฉันไปเพียงเล็กน้อยมันน่าอัศจรรย์ที่จะกลับไปสู่ลักษณะที่ควรจะปรากฏขึ้น: ขอบคุณสำหรับความช่วยเหลือใด ๆ ! แก้ไข: นี่คือสิ่งที่ดีที่สุดที่ฉันสามารถทำได้สำหรับซอร์สโค้ดนี่เป็นโครงการขนาดใหญ่มากและการเรนเดอร์มันทำได้หลายด้าน: Main Render Loop สำหรับองค์ประกอบแบบไดนามิกเช่นไทล์: spriteBatch.Begin(SpriteSortMode.Deferred, Nothing, SamplerState.LinearClamp, Nothing, Nothing, Nothing, Matrix.CreateTranslation(CameraX, CameraY, 0)) Mode.Render(spriteBatch, False) For Each j As [Delegate] In DynamicInjectionList j.DynamicInvoke(spriteBatch) Next DynamicInjectionList.Clear() spriteBatch.End() Mode.Render: For x As Integer …

1
คุณจะเพิ่มอุปกรณ์ไปยังตัวละครแบบ 3D โดยใช้ XNA / Blender ได้อย่างไร
ฉันเคยดูแบบฝึกหัด Blender มาบ้างแล้ว แต่ฉันยังไม่เห็นตัวอย่างของการสลับรุ่นย่อย ดังนั้นคำถามของฉันคือคุณจะสลับอุปกรณ์ในรูปแบบตัวละครได้อย่างไร โดยเฉพาะฉันต้องการที่จะสามารถเพิ่ม / แลกเปลี่ยนเสื้อผ้าและรายการที่จัดทำโดยตัวละครใน XNA ในทางกลับกันไอเท็มจะเป็นไปตามโครงสร้างกระดูกของโมเดลตัวละคร ตัวอย่างเช่น; เริ่มต้นด้วยตัวละครเปลือยใน XNA ฉันต้องการให้ตัวละครถือขวานและสวมเชนเมล์ที่ตามหลังภาพเคลื่อนไหวของตัวละคร ฉันต้องการที่จะสามารถเปลี่ยนอุปกรณ์นี้เป็นดาบและแผ่นจดหมายได้ตลอดเวลาในระหว่างเกม ฉันไม่ต้องการสร้างแบบจำลองสำหรับชุดอุปกรณ์แต่ละชุด มีวิธีการเพียงแค่เพิ่มกระดูก (พูดกระดูกดาบ) และตาข่ายของแบบจำลองหนึ่งไปยังกระดูกรุ่นอื่น (พูดกระดูกข้างขวา) หรือไม่? ขอบคุณ ...
14 xna-4.0  blender 

2
การเล่นเพลงทำให้ WP7 ขัดข้องทางโทรศัพท์ แต่ไม่ใช่ในอีมูเลเตอร์
ฉันพยายามใช้เพลงเป็นเกมที่เริ่มเล่นและวนซ้ำอย่างต่อเนื่องบน Windows Phone 7 ผ่าน XNA 4.0 บนอีมูเลเตอร์สิ่งนี้ใช้ได้ดี แต่เมื่อนำไปใช้กับโทรศัพท์มันจะให้หน้าจอสีดำก่อนกลับไปที่หน้าจอหลัก นี่คือรหัสโกงในคำถามและการแสดงความคิดเห็นรหัสนี้ทำให้แอปทำงานได้ดีบนโทรศัพท์: // in the constructor fields private Song song; // in the LoadContent() method song = Content.Load<Song>("song"); // in the Update() method if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing) { MediaPlayer.Play(song); } ไฟล์เพลงนั้นมีความยาว 2:53, 2.28mb .wma ที่ 106kbps บิตเรต อีกครั้งนี้ทำงานได้อย่างสมบูรณ์แบบบนโปรแกรมจำลอง แต่ไม่ทำงานเลยบนโทรศัพท์ ขอบคุณสำหรับความช่วยเหลือใด …

1
กำลังกำจัดทรัพยากรบางอย่างใน XNA หรือไม่
ContentManager ใน XNA 4.0 มีวิธีการ Unload () วิธีเดียวที่ยกเลิกการโหลดสินทรัพย์ทั้งหมด ฉันต้องการมีสินทรัพย์ "ทั่วโลก" ที่โหลดอยู่เสมอ แต่จากนั้นฉันต้องการสินทรัพย์ต่อระดับที่ควรเลิกโหลดเมื่อระดับมีการเปลี่ยนแปลง ฉันควรสร้างอินสแตนซ์ที่สองของ ContentManager เป็นส่วนหนึ่งของ Level.cs Class หรือไม่ หรือฉันควรใช้ Game.Content จากนั้นโทร. จัดการกับทรัพย์สินที่ฉันโหลด? หรือฉันควรสร้าง ContentManager ของตัวเองที่ด้านบนของฟังก์ชั่น ReadAsset ตามที่อธิบายไว้ที่นี่ ?
13 xna  xna-4.0 

5
45 °ลาดใน platformer 2D ที่ใช้กระเบื้อง
ฉันต้องการมีความลาดชันที่เรียบง่าย 45 °ใน platformer ที่ใช้กระเบื้องของฉันอย่างไรก็ตามฉันแค่ดูเหมือนจะไม่สามารถทำให้อัลกอริทึมลง โปรดดูรหัสและวิดีโอบางทีฉันอาจจะขาดอะไรไปหรือเปล่า? //collisionRectangle is the collision rectangle of the player with //origin at the top left and width and height //wantedPosition is the new position the player will be set to. //this is determined elsewhere by checking the bottom center point of the players rect if(_leftSlope …
12 xna  c#  xna-4.0  platformer 

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.