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

XNA เป็นกรอบเกมโดย Microsoft ที่อนุญาตให้ปรับใช้สำหรับ Windows, Windows Phone และ Xbox 360

2
ฉันจะสร้างคอลเลกชันของมินิเกมใน XNA ได้อย่างไรซึ่งผู้ใช้สามารถดาวน์โหลดชุดของมินิเกมและ. exe หลักสามารถรันได้โดยไม่ต้องมีการแก้ไข
ฉันกำลังสร้างเกมพีซีใน XNA จริงๆแล้วมันเป็นชุดของมินิเกม (มี 3 มินิเกมในขณะนี้) อย่างไรก็ตามฉันวางแผนที่จะสร้างและเพิ่มมากขึ้นใน 'แพ็ค' ที่สามารถดาวน์โหลดได้ คำถามของฉันคืออะไรวิธีที่ดีที่สุดเพื่อให้บรรลุนี้ ขณะนี้ความคิดของฉันคือ: สร้างอินเทอร์เฟซ 'เกม' สร้างเกมไปยังส่วนต่อประสานนี้ แต่สร้างเป็น. dll ให้ไฟล์. exe หลักสแกนไดเรกทอรีและโหลดใน. dll ที่รันไทม์ ฉันไม่ได้ยุ่งกับความคิดมาก แต่ฉันรู้ว่ามีแอปพลิเคชันอย่างน้อยที่ใช้วิธีการปลั๊กอินนี้ (Notepad ++ ดูเหมือนว่า) แต่ฉันไม่แน่ใจว่าเกมใดที่ทำ (แม้ว่าฉันจะแน่ใจ ต้องมีอยู่) อย่างไรก็ตามดูเหมือนว่านี่เป็นปัญหาที่ได้รับการแก้ไขก่อนหน้านี้ดังนั้นฉันสงสัยว่ามีรูปแบบใดของการปฏิบัติที่ดีที่สุด
12 xna  c# 

2
XNA“ XBox 360 Project” จะทำงานบน Windows ได้หรือไม่
ฉันเข้าใจว่าโครงการ XNA สำหรับ XBox 360 จะใช้. NET Compact Framework รุ่นพิเศษ แต่สมมุติว่าฉันต้องการปล่อยทั้ง XBox 360 และ Windows รุ่น XBox (โดยใช้เฟรมเวิร์กขนาดกะทัดรัด) จะยังใช้งานได้หากเผยแพร่สำหรับ Windows หรือฉันจะต้องสร้างใหม่กับกรอบปกติ (หรือ CF ที่ไม่ใช่ Xbox) เพื่อกระจาย
12 xna  windows  xbox360 

5
จะจัดการกับการชนในเกมที่มีส่วนประกอบได้อย่างไร
พยายามพาดหัวของฉันในการจัดการกับการชนในเกมที่ออกแบบมาสำหรับส่วนประกอบต่างๆ ฉันเห็นตัวอย่างมากมายที่มีการเรียงลำดับบางอย่างPhysicsComponentที่เพิ่มเข้าในรายการส่วนประกอบของเอนทิตี แต่การใช้งานจริงทำให้ฉันสับสน เพื่อให้สามารถใช้งานได้PhysicsComponentต้องมีการเข้าถึงโลกรอบตัว สิ่งนี้ไม่สมเหตุสมผลกับฉัน ส่วนประกอบไม่ควรไม่รู้ว่าเป็นเพียงแค่คอนเทนเนอร์ (เอนทิตี) แต่เป็นคอนเทนเนอร์ของคอนเทนเนอร์ (โลก)? สำหรับฉันแล้วมันดูเหมือนว่าระดับหรือฉากควรรักษารายการของเอนทิตีเหล่านี้และการอัปเดตเกมทุกครั้ง คำถามของฉันคือประการแรกไม่ว่าจะเป็นการออกแบบที่ดีหรือไม่และประการที่สองจะตัดสินได้อย่างไรว่าเอนทิตีใดสามารถชนกันได้ ฉันสมมติว่าเอนทิตีแข็งสามารถใช้อินเทอร์เฟซ IRigidBody ว่างเพื่อให้ระดับสามารถกำหนดเอนทิตีที่อยู่ในรายการสนับสนุนการชนกัน แต่นี่เป็นการทำลายการออกแบบส่วนประกอบหรือไม่? แต่ควรมีส่วนประกอบ RigidBody ที่ว่างเปล่าแทนหรือไม่ นี่อาจจะดีกว่าเพราะมันอาจไม่ว่างเสมอไปและวิธีนี้เป็นวิธีที่พิสูจน์ได้ในอนาคต ปัญหาเดียวของเรื่องนี้ก็คือความซับซ้อน ฉากจะต้องวนซ้ำไม่เพียง แต่ทุกเอนทิตีเท่านั้น แต่ยังรวมถึงองค์ประกอบของเอนทิตีทุกอันเพื่อพิจารณาว่ามีส่วนประกอบ RigidBody นี้หรือไม่ ประการที่สามเมื่อพวกเขาชนกันทั้งสองหน่วยงานควรได้รับแจ้งอย่างใดและฉันไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไร สมมติว่าทั้งสองเอนทิตีมี HealthComponent และเมื่อพวกเขาชนทั้งสุขภาพของพวกเขาจะลดลงตามมูลค่าโดยพลการ 5. ฉันคิดว่ามันเป็นความรับผิดชอบของฉากที่จะจัดการเรื่องนี้เมื่อตรวจพบการชนกันระหว่างสองเอนทิตี้? แต่ฉากนั้นรับผิดชอบมากเกินไปหรือไม่? ฉันเห็นว่าสิ่งนี้อาจหลุดพ้นจากมือและไม่สะดวกสบายเมื่อฉากรับผิดชอบหลาย ๆ สิ่งที่เอนทิตีไม่ควรเข้าถึง (?) แก้ไข:คำถามได้รับการอัปเดตพร้อมรายละเอียดเพิ่มเติม

2
ฉันจะใช้ตัวกรอง xBR หรือ hqx ใน XNA ได้อย่างไร
ฉันต้องการทำให้สัดส่วนของเกมของฉันสูงขึ้นด้วยหนึ่งในตัวกรอง hqx (hq2x, hq3x หรือ hq4x) หรือตัวกรอง xBRใน shader ฉันจะทำสิ่งนี้ใน XNA 4.0 และ SM3 ได้อย่างไร หมายเหตุด้านข้าง: คำถามนี้ได้รับการแก้ไขอย่างหนักเพื่อเป็นสิ่งที่เป็นอยู่ในปัจจุบัน
11 xna  2d  shaders  pixel  scale 

4
ทำให้ผู้เล่นวิ่งไปบนบันไดอย่างราบรื่น
ฉันมีเกมแพลตฟอร์ม 2 มิติที่ผู้เล่นวิ่งไปทางขวาเสมอ แต่ภูมิประเทศไม่ได้เป็นแนวนอนเสมอ ตัวอย่าง: ฉันใช้ระบบชนกล่องที่เพิ่งตรวจสอบจุดตัดพร้อมกล่องผู้เล่นและบล็อกอื่น ๆ เพื่อหยุดผู้เล่นไม่ให้ทำงานหากคุณพบบล็อกขนาดใหญ่เพื่อให้คุณต้องกระโดด แต่เมื่อฉันวางบันไดฉันต้องการให้เขา ทำงานได้อย่างราบรื่นเหมือนเขาอยู่บนพื้นราบ ด้วยระบบการชนคุณจะต้องกระโดดขึ้นบันไดเพื่อผ่านมัน! ฉันคิดถึงการสร้างเส้นแบ่งระหว่างขอบของบันไดและทำให้ผู้เล่นเคลื่อนไหวบนเส้นนั้น ... คุณคิดอย่างไร? มีอะไรที่ฉลาดกว่านี้บ้างไหม?

1
จะทราบได้อย่างไรว่าผู้เล่นลงชื่อเข้าใช้?
ฉันสงสัยว่ามีวิธีใดที่จะทราบว่า "ผู้เล่น" ลงชื่อเข้าใช้หรือไม่? บางสิ่งเช่นนี้ if (GamePad.GetState(PlayerIndex.Two).IsConnected && !Gamer.PlayerTwo.IsSignedIn) เพื่อให้คอนโทรลเลอร์นั้นเชื่อมต่อและสามารถใช้งานได้ แต่ผู้เล่นไม่ได้ลงชื่อเข้าใช้บัญชี สิ่งที่ชอบเดา

2
อินพุตคีย์บอร์ดบัฟเฟอร์แบบพกพาสำหรับ XNA / MonoGame?
เป็นวิธีแก้ปัญหาเบื้องต้นฉันกำลังใช้เฟรมเวิร์ก Nuclexในโครงการเกม C # / XNA สำหรับอินพุตคีย์บอร์ดบัฟเฟอร์ น่าเศร้าที่ nuclex พึ่งพา SlimDX.Directinput.dll ดังนั้นความรู้ของฉันจึงสามารถใช้ได้เฉพาะในระบบปฏิบัติการ Windows เท่านั้น อย่างไรก็ตามฉันใช้MonoGameเพื่อกำหนดเป้าหมายแพลตฟอร์มอื่น ๆ (Linux, OSX และอื่น ๆ ) และดังนั้นฉันจึงกำลังมองหาวิธีการพกพาในการรวมแป้นพิมพ์บัฟเฟอร์ที่ทำให้เกิดข้อผิดพลาดในทุกแพลตฟอร์ม มีผู้ใด?

6
เรียกใช้เกม XNA โดยไม่มีกราฟิก
หากยังสงสัยว่าจะมีเกม XNA อยู่หรือไม่โดยไม่แสดงผลใด ๆ ฉันมีเกมที่ใช้งานได้ซึ่งทำงานในการติดตั้งเซิร์ฟเวอร์ของลูกค้าโดยที่ผู้เล่นหนึ่งคนเป็นโฮสต์และคนอื่น ๆ สามารถเชื่อมต่อกับเกมของเขาได้ ตอนนี้ฉันต้องการที่จะเรียกใช้เกมเป็นโฮสต์บนเซิร์ฟเวอร์ที่ถูกถอดรหัสโดยไม่มีการ์ดกราฟิกโดยทั่วไปฉันไม่ต้องการเรียกใช้ตรรกะ Draw () เลย ฉันต้องผ่านทั้งเกมจริงๆและลบการอ้างอิงทั้งหมดไปยัง XNA หรือไม่? ผู้คนทำสิ่งนี้อย่างไร แก้ไข : เหตุผลที่ฉันต้องการทำเช่นนี้เพราะฉันมีการติดตั้งเซิร์ฟเวอร์ลูกค้าที่ใช้งานได้ในเกมและฉันไม่ต้องการสร้างโปรแกรมเซิร์ฟเวอร์ "หัวขาด" แยกต่างหาก
11 xna  xna-4.0 

4
จะเขียนโค้ด Time Stop หรือ Bullet Time ในเกมได้อย่างไร?
ฉันกำลังพัฒนา platformer RPG ผู้เล่นเดี่ยวใน XNA 4.0 ฉันต้องการเพิ่มความสามารถที่จะทำให้เวลา "หยุด" หรือช้าลงและมีเพียงตัวละครของผู้เล่นที่เคลื่อนที่ด้วยความเร็วดั้งเดิม (คล้ายกับคาถา Time Stop จากซีรี่ส์ประตู Baldur) ฉันไม่ได้มองหาการใช้งานที่แน่นอน แต่เป็นแนวคิดและรูปแบบการออกแบบทั่วไป แก้ไข: ขอบคุณทุกท่านสำหรับการป้อนข้อมูลที่ยอดเยี่ยม ฉันคิดวิธีแก้ปัญหาต่อไปนี้ขึ้นมา public void Update(GameTime gameTime) { GameTime newGameTime = new GameTime(gameTime.TotalGameTime, new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER)); gameTime = newGameTime; หรือบางสิ่งบางอย่างตามสายเหล่านี้ ด้วยวิธีนี้ฉันสามารถตั้งเวลาที่แตกต่างกันสำหรับองค์ประกอบผู้เล่นและแตกต่างกันสำหรับส่วนที่เหลือ แน่นอนว่ามันไม่เป็นสากลมากพอที่จะทำงานให้กับเกมที่เวลาการแปรปรวนเช่นนี้จะเป็นองค์ประกอบสำคัญ แต่ฉันหวังว่ามันจะทำงานได้ดีในกรณีนี้ ฉันไม่ชอบความจริงที่ว่ามันเพิ่มลูปอัปเดตหลัก แต่ก็เป็นวิธีที่ง่ายที่สุดในการติดตั้ง ฉันเดาว่าสำคัญมากเหมือนกับที่ tesselode แนะนำดังนั้นฉันจะให้เห็บสีเขียวแก่เขา :)
11 xna  time-travel 

6
แผนที่ที่มีไทล์ 20 ล้านแผ่นทำให้เกมหน่วยความจำหมดฉันจะหลีกเลี่ยงได้อย่างไร
ในขณะที่โหลดแผนที่ขนาดใหญ่พิเศษวิธีการโหลดจะมีข้อยกเว้นหน่วยความจำเกิดขึ้นซึ่งมีการสร้างไทล์แผนที่ใหม่ ฉันต้องการให้มีการประมวลผลแผนที่ทั้งหมดอย่างน้อยในแอปเซิร์ฟเวอร์ (และลูกค้าถ้าเป็นไปได้) ฉันจะแก้ปัญหานี้ได้อย่างไร UPD:คำถามที่นี่คือวิธีทำให้เกมหยุดทำงานล้มเหลวเมื่อยังมีหน่วยความจำว่างสำหรับให้ใช้ ส่วนแผนที่แยกเป็นชิ้นมันเป็นวิธีที่ดี แต่ไม่ใช่สิ่งที่ฉันต้องการในกรณีของฉัน UPD2:ตอนแรกฉันไปและกำหนดพื้นผิวให้กับทุก ๆ อินสแตนซ์ใหม่ของคลาสกระเบื้องและนั่นคือสิ่งที่ใช้หน่วยความจำมาก (เช่นเวลาโหลด) ตอนนี้ใช้พื้นที่น้อยกว่าประมาณสี่เท่า ขอบคุณทุกคนตอนนี้ฉันสามารถเล่นแผนที่ขนาดใหญ่ได้โดยไม่ต้องคิดจะแยกพวกมันออกเป็นชิ้น ๆ UPD3:หลังจากเขียนรหัสใหม่เพื่อดูว่าอาเรย์ของคุณสมบัติไทล์ทำงานได้เร็วขึ้นหรือใช้หน่วยความจำน้อยกว่า (มากกว่าคุณสมบัติที่กล่าวไว้ในไทล์ของพวกเขาเป็นคุณสมบัติของวัตถุ) ฉันพบว่าไม่เพียง แต่ใช้เวลามากลอง ไม่ได้นำการปรับปรุงประสิทธิภาพมาใช้และทำให้เกมนั้นยากมากที่จะทำการดีบัก

2
ตัวอย่าง Microsoft XNA Platformer การตรวจจับ Collsion มีการใช้งานอย่างถูกต้องหรือไม่
ตัวอย่างที่ Microsoft เตรียมไว้ให้ดูเหมือนว่าการตรวจจับการชน (จากสิ่งที่ฉันเห็น) จะมีข้อผิดพลาดเล็กน้อย เมื่อผู้ใช้ชนกับไทล์ Unpassable ความลึกของจุดตัดจะถูกคำนวณ ค่าความลึกที่น้อยกว่า X และ Y ถูกใช้เพื่อกำหนดตำแหน่งของผู้ใช้ดังนั้นจึงไม่เกิดการชนกับไทล์อีกต่อไป แต่ถ้าผู้ใช้เดินทางในแนวทแยงมุมสิ่งนี้จะส่งผลให้ผู้ใช้ไม่ได้จบลงอย่างแม่นยำในจุดที่ตัวละครจะชนกับไทล์ก่อน? ฉันอาจผิด แต่นั่นเป็นเพียงวิธีที่ฉันเห็น private void HandleCollisions() { // Get the player's bounding rectangle and find neighboring tiles. Rectangle bounds = BoundingRectangle; int leftTile = (int)Math.Floor((float)bounds.Left / Tile.Width); int rightTile = (int)Math.Ceiling(((float)bounds.Right / Tile.Width)) - 1; int topTile …

2
วิธีสร้างระบบคลังโฆษณาแบบผู้เล่นทั่วโลก
ฉันพบปัญหาในการพยายามใช้ระบบสินค้าคงคลังภายใน XNA (ไม่สำคัญเลยอาจเป็นแพลตฟอร์มใดก็ได้) แต่จนถึงตอนนี้ นี่คือปัญหาที่ฉันพยายามล้อมรอบ: ฉันจะรับไอเท็มจากโลกได้อย่างไร (คิดว่าเมื่อคุณฆ่ามอนสเตอร์มันจะดรอปเกราะ) และนำไปไว้ในคลังของผู้เล่นของฉัน? หากสินค้าคงคลังเป็นเพียงรายการสินค้าในทางเทคนิคแล้วฉันจะนำ Steel Sword จากโลกไปสู่สินค้าคงคลังของผู้เล่นโดยไม่ต้องมีคลาสทำมากกว่าหนึ่งอย่างได้อย่างไร ขณะนี้ฉันมีโครงสร้างรายการซึ่งมีค่าเลขฐานสิบหกที่ไม่ซ้ำกันนับจำนวนรายการที่มี (สำหรับวางซ้อนได้เช่นลูกศร) และพื้นผิวสำหรับแสดงผลภายในคลังโฆษณาและคุณสมบัติที่ไม่สำคัญอื่น ๆ (ชื่อคำอธิบาย ฯลฯ ) . มันจะเป็นการออกแบบที่ไม่ดีถ้าฉันต้องแก้ไขคลาสไอเท็มที่มีอยู่ของฉันให้เป็นตำแหน่งของโลกพร้อมกับการตรวจจับการชนกันของข้อมูล (ไม่ต้องการให้ไอเท็มหล่นผ่านพื้นโลก) ขอบคุณสำหรับการพิจารณาใด ๆ !
11 xna  c#  2d 

1
ฉันจะสร้างตัวติดตั้งสำหรับการสาธิต XNA ของฉันได้อย่างไร
ฉันมีการสาธิตรหัสใน XNA3.1 โดยใช้ VS2008 ฉันชอบที่จะสามารถส่งสิ่งนี้ให้กับทุกคนที่มีพีซีและให้พวกเขาติดตั้งและรันโดยไม่ต้องให้พวกเขาติดตั้ง VS หรือ. Net framework เป็นต้น ฉันคิดว่ามันจะเป็นตัวเลือกการเผยแพร่ แต่ฉันสับสนเล็กน้อย มีใครบ้างไหมที่ให้ความกระจ่างเกี่ยวกับเรื่องนี้? ขอบคุณล่วงหน้า.

1
XNA การเพิ่มหลุมอุกกาบาต (ผ่าน GPU) พร้อมเอฟเฟกต์“ Burn”
ขณะนี้ฉันกำลังทำงานกับโคลน "Worms" 2D ใน XNA และหนึ่งในคุณสมบัติคือภูมิประเทศ "deformable" (เช่นเมื่อจรวดชนกับภูมิประเทศมีการระเบิดและก้อนภูมิประเทศหายไป) ขณะนี้ฉันกำลังทำสิ่งนี้อยู่โดยใช้พื้นผิวที่มีค่าสีแดงสูงขึ้นอย่างต่อเนื่องเมื่อใกล้ถึงจุดศูนย์กลาง ฉันวนรอบทุกพิกเซลของพื้นผิว "เปลี่ยนรูป" และหากพิกเซลปัจจุบันทับซ้อนพิกเซลภูมิประเทศและมีค่าสีแดงสูงพอฉันจะปรับเปลี่ยนอาร์เรย์สีที่แสดงภูมิประเทศเป็นโปร่งใส หากพิกเซลปัจจุบันมีค่าสีแดงไม่สูงพอฉันจะทำให้ภูมิประเทศเป็นสีดำ (ยิ่งมืดลงยิ่งค่าสีแดงใกล้ถึงขีด จำกัด มากขึ้น) ในตอนท้ายของการดำเนินการนี้ฉันใช้ SetData เพื่ออัปเดตพื้นผิวภูมิประเทศของฉัน ฉันรู้ว่านี่ไม่ใช่วิธีที่ดีที่จะทำไม่ใช่เพียงเพราะฉันได้อ่านเกี่ยวกับแผงลอยไปป์ไลน์และเช่นนั้น แต่ยังเพราะมันอาจกลายเป็นเรื่องที่ค่อนข้างล้าหลังหากมีการเพิ่มหลุมอุกกาบาตจำนวนมากในเวลาเดียวกัน ฉันต้องการสร้าง Crater Generation ของฉันใหม่บน GPU แทนที่จะใช้ Render Targets "ping-ponging" ระหว่างการเป็นเป้าหมายและพื้นผิวเพื่อปรับเปลี่ยน นั่นไม่ใช่ปัญหาฉันรู้วิธีการทำ ปัญหาคือฉันไม่รู้วิธีเก็บเบิร์นเอฟเฟกต์ด้วยวิธีนี้ นี่คือลักษณะการเบิร์นของผลตอนนี้: ไม่มีใครมีความคิดว่าฉันจะสร้างเอฟเฟกต์การเผาไหม้ที่คล้ายกันได้อย่างไร (ทำให้ขอบรอบปล่องที่เกิดขึ้นมืดลง)? ฉันไม่คุ้นเคยกับ Shaders อย่างสมบูรณ์ แต่ถ้าจำเป็นต้องใช้ฉันจะขอบคุณจริง ๆ ถ้ามีคนแนะนำฉันเกี่ยวกับวิธีการทำ หากมีวิธีอื่นใดที่จะดีเช่นกัน
11 xna  textures  effects 

4
การแสดงผลความละเอียดข้อความอิสระ
ฉันต้องการวิธีการวาดความละเอียดข้อความอิสระในเกมของฉัน นั่นคือฉันต้องสามารถซูมเข้าข้อความและไม่เคยเห็นสิ่งประดิษฐ์พิกเซล ใครสามารถให้คำแนะนำเกี่ยวกับวิธีที่ฉันสามารถไปเกี่ยวกับเรื่องนี้?
11 xna  2d  3d  text 

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