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

การใช้งานโอเพ่นซอร์สของ XNA 4 ของ Microsoft สำหรับ Windows, Mac, Linux, Android และ iOS และอื่น ๆ

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

2
เลื่อนกล้อง XNA 2d - ทำไมต้องใช้การแปลงเมทริกซ์?
ฉันกำลังทำเกมทดสอบที่ฉันต้องการให้เลื่อนระดับอย่างต่อเนื่อง ในการสร้างเอฟเฟกต์นี้ฉันได้สร้างคลาสกล้องที่เก็บตำแหน่งเวกเตอร์ 2 และทิศทาง Enum นอกจากนี้ยังมีวิธีการสาธารณะเพื่อ 'ย้าย' ซึ่งเพียงเปลี่ยนตำแหน่งในอัตราคงที่ จากนั้นฉันจะใช้ตำแหน่งนี้เมื่อวนลูปผ่านอาร์เรย์ของกระเบื้องเมื่อวาดภาพ ทั้งหมดนี้ทำงานได้ดี อย่างไรก็ตามฉันได้รับแจ้งว่าฉันควรใช้ Transform matrix เพื่อย้ายกล้องและฉันควรให้สิ่งนี้เมื่อฉันเริ่ม spritebatch ฉันสับสนเล็กน้อย a.) วิธีนี้ทำงานอย่างไร ราวกับว่าฉันจะให้มันก็ต่อเมื่อ spritebatch เริ่มต้นจะรู้ได้อย่างไรว่าจะเปลี่ยนตำแหน่งได้อย่างไร b.) ทำไมฉันยังต้องการตำแหน่งกล้องเมื่อฉันวนผ่านกระเบื้อง? ในขณะที่ฉันไม่สามารถทำงานได้ แต่ก็ไม่แปลกใจเลยที่ฉันไม่เข้าใจวิธีการทำงาน ขณะนี้ฉันกำลังพยายาม (โค้ดให้ติดตาม) กระเบื้องที่กำลังถูกเปลี่ยนแปลงซึ่งหมายถึงตำแหน่งของกล้องกำลังเปลี่ยนแปลง แต่ตำแหน่งของวิวพอร์ตยังคงไม่เปลี่ยนแปลง (เช่นที่จุดเริ่มต้นของกล้อง) ฉันจะขอบคุณคำแนะนำ / คำแนะนำเกี่ยวกับวิธีการใช้งาน กล้อง: class Camera { // The position of the camera. public Vector2 Position { get { return …


8
วิธีสร้าง Spritefonts สำหรับ monogame
ฉันแค่ต้องการแสดงข้อความบนหน้าจอโดยใช้: monogame 3.0 MS Visual Studio 2010 C # Express ใน XNA คุณสามารถเพิ่มแบบอักษรให้กับไปป์ไลน์เนื้อหาได้ค่อนข้างง่าย แต่ดูเหมือนจะไม่เป็นเช่นนั้นใน monogame กำลังโหลดไฟล์ TTF ที่ใช้Content<SpriteFont>.Load()ไม่ทำงาน มีวิธีใดในการสร้างหรือดาวน์โหลดไฟล์ * .spritefont หรือไฟล์ * .xnb ที่มีข้อมูลตัวอักษร (โดยไม่ต้องติดตั้ง XNA)
14 xna  monogame 

2
การปลดล็อกอัตราเฟรมใน XNA / MonoGame จะบอกฉันว่ารหัสของฉันมีประสิทธิภาพหรือไม่
ฉันได้ปลดล็อกอัตราเฟรมใน MonoGame ผ่านทาง: this.graphics.SynchronizeWithVerticalRetrace = false; base.IsFixedTimeStep = false; และใช้เป็นพื้นฐานสำหรับการปรับปรุงและวาดภาพในเกมอย่างมีประสิทธิภาพ ที่ความละเอียด240 x 160โดยไม่มีการวาดหรืออัปเดตใด ๆ ยกเว้นตัวนับเฟรมฉันจะได้รับค่า FPS 9,000ถึง11,000 FPS หากฉันเพิ่มรหัสทั้งหมดของฉันลงไปมันจะลดลงเหลือประมาณ1,100 FPS นี่เป็นตัวบ่งชี้ที่ดีว่ารหัสของฉันทำให้ GPU ช้าลงอย่างมาก (10x) และฉันควรจะกังวลไหม? เกมจะวิ่งที่ 60 FPS ดังนั้นฉันก็ยังค่อนข้างห่างไกลจากจุดนั้น แต่ควรจะกังวลเกี่ยวกับอัตราเฟรมที่ปลดล็อคที่จุดใด GPU: AMD FirePro W5000 (FireGL V)

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

4
ตรวจจับ“ การกดปุ่มใด ๆ ”
ฉันพยายามอนุญาตให้ผู้เล่นกดปุ่มใดก็ได้เพื่อดำเนินการต่อจากหน้าหลัก ฉันสามารถทำสิ่งนี้ได้ด้วยการทำรายการของปุ่มและวนลูปผ่านสิ่งเหล่านี้และตรวจสอบว่าหนึ่งในนั้นหยุดทำงานหรือไม่ อย่างไรก็ตามฉันรู้สึกว่ารหัสนี้น่าเกลียดและสงสัยว่ามีวิธีที่ง่ายกว่าในการทำสิ่งที่ฉันไม่ได้คิดหรือ นี่คือโค้ดของฉันตอนนี้: if (GamePad.GetState(PlayerIndex.One).IsConnected) { var buttonList = new List<Buttons>() { {Buttons.A}, {Buttons.B}, {Buttons.Y}, {Buttons.X}, {Buttons.Start}, {Buttons.Back}, {Buttons.RightShoulder}, {Buttons.LeftShoulder}, {Buttons.RightTrigger}, {Buttons.LeftTrigger} }; foreach (var button in buttonList) { if (GamePad.GetState(PlayerIndex.One).IsButtonDown(button)) ExitMainMenu= true; } }
10 xna  monogame 

3
ปัญหาใดที่อาจเกิดขึ้นได้หากคุณใช้ทั้ง MonoGame API และ API กราฟิกพื้นฐาน
มีปัญหาอะไรบ้างหากพวกเขาสร้างเกมด้วย MonoGame และเริ่มโทรศัพท์ไปยัง API กราฟิกพื้นฐานเช่นกัน? ตัวอย่างเช่นถ้าฉันต้องการทำบางสิ่งในโครงการ MonoGame ที่ MonoGame ไม่จำเป็นต้องสนับสนุนหรือฉันไม่สามารถหาเอกสาร / ตัวอย่างที่เหมาะสม แต่ฉันสามารถหาตัวอย่างของวิธีการทำใน OpenTK ได้หรือไม่ ตั้งค่าตัวเองให้เกิดปัญหาหากฉันใช้งานโดยใช้ OpenTK โดยตรงในขณะที่ใช้ MonoGame API ในที่อื่น ๆ ? โดยเฉพาะฉันกำลังมองหาว่ามีปัญหาใหญ่ที่รู้ว่าอาจเกิดจากสิ่งนี้และไม่ใช่สิ่งที่คลุมเครือที่จะเกิดขึ้นในกรณีที่หายากมาก ฉันพยายามทำวิจัยเล็กน้อยผ่านทาง Google และไซต์ GD.SE และฉันก็หาอะไรไม่ได้มากมาย บางที MonoGame ได้ครอบคลุมฐานส่วนใหญ่จริง ๆ แล้ว แต่ถ้าฉันต้องการแก้ไขปัญหาที่โดดเด่นหรือคุณลักษณะที่ยังไม่ได้ใช้งานด้วยตนเอง ถ้าเป็นเช่นนั้นปัญหาแบบใดที่อาจเกิดขึ้นและมีวิธีใดบ้างที่จะช่วยบรรเทาปัญหาเหล่านี้ได้?
10 monogame 

4
GUI Library สำหรับ MonoGame [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา มี GuiLibrary ใดบ้างที่ใช้ได้กับ MonoGame ฉันรู้ว่ามี GUI Library สำหรับ XNA แต่ฉันคิดว่าส่วนใหญ่จะไม่ทำงานกับ MonoGame แม้แต่สิ่งง่าย ๆ เช่นปุ่มและอินพุตจะช่วยฉัน ... ขอบคุณ
10 monogame 

2
วิธีปรับปรุงประสิทธิภาพสำหรับฟังก์ชั่นราคาแพงในตัวสร้างเมือง 2 มิติ
ฉันค้นหาคำตอบแล้ว แต่ฉันไม่สามารถหาวิธีที่ดีที่สุดในการจัดการฟังก์ชั่น / การคำนวณราคาแพง ในเกมปัจจุบันของฉัน (อาคารเมืองแบบกระเบื้อง 2d) ผู้ใช้สามารถวางอาคารสร้างถนน ฯลฯ อาคารทุกหลังจำเป็นต้องเชื่อมต่อกับทางแยกที่ผู้ใช้ต้องวางไว้ที่ชายแดนของแผนที่ หากอาคารไม่ได้เชื่อมต่อกับทางแยกนี้สัญญาณ "ไม่ได้เชื่อมต่อกับถนน" จะปรากฏขึ้นเหนือสิ่งปลูกสร้างที่ได้รับผลกระทบ อาคารส่วนใหญ่มีรัศมีและอาจเกี่ยวข้องกันเช่นกัน (เช่นแผนกดับเพลิงสามารถช่วยบ้านทั้งหมดภายในรัศมี 30 แผ่น) นั่นคือสิ่งที่ฉันต้องปรับปรุง / ตรวจสอบเมื่อการเชื่อมต่อถนนเปลี่ยนไป เมื่อวานนี้ฉันพบปัญหาเรื่องประสิทธิภาพที่ยิ่งใหญ่ ให้ดูสถานการณ์ต่อไปนี้: ผู้ใช้สามารถลบสิ่งปลูกสร้างและถนนได้เช่นกัน ดังนั้นหากผู้ใช้ในขณะนี้แบ่งการเชื่อมต่อทันทีหลังจากสนธิฉันจำเป็นต้องปรับปรุงอาคารจำนวนมากในเวลาเดียวกัน ฉันคิดว่าหนึ่งในคำแนะนำแรกคือการหลีกเลี่ยงการซ้อนกันลูป (ซึ่งแน่นอนเป็นเหตุผลใหญ่ในสถานการณ์นี้) แต่ฉันต้องตรวจสอบ ... หากอาคารยังคงเชื่อมต่อกับทางแยกในกรณีที่มีการถอดกระเบื้องถนน (ฉันทำเช่นนั้นเฉพาะอาคารที่ได้รับผลกระทบจากถนนนั้น) (อาจเป็นปัญหาที่เล็กกว่าในสถานการณ์นี้) รายการของกระเบื้องรัศมีและได้รับอาคารภายในรัศมี(ลูปซ้อนกัน - ปัญหาใหญ่!) // Go through all buildings affected by erasing this road tile. foreach(var affectedBuilding in affectedBuildings) { …

5
สไปรต์เรนเดอร์พร่ามัวด้วยความเร็ว
หลังจากเพิ่มความเร็วให้กับเกมของฉันฉันรู้สึกว่าพื้นผิวของฉันกระตุก ฉันคิดว่ามันเป็นแค่ดวงตาของฉันจนกระทั่งในที่สุดฉันก็จับมันเป็นภาพหน้าจอ: ด้านซ้ายเป็นสิ่งที่แสดงในเกมของฉัน ด้านขวาคือสไปรต์ดั้งเดิมวางอยู่ (นี่เป็นภาพหน้าจอจาก Photoshop, ซูมเป็น 6x) สังเกตว่าขอบเป็นนามแฝง - ดูเหมือนว่าการเรนเดอร์พิกเซลย่อยเกือบจะเหมือนกัน ในความเป็นจริงถ้าฉันไม่ได้บังคับสไปรต์ของฉัน (ซึ่งมีตำแหน่งและความเร็วเป็น ints) เพื่อวาดโดยใช้ค่าจำนวนเต็มฉันจะสาบานว่า MonoGame กำลังวาดด้วยค่าจุดลอย แต่มันไม่ใช่ อะไรเป็นสาเหตุของสิ่งเหล่านี้ที่ปรากฏพร่ามัว มันจะไม่เกิดขึ้นหากไม่ใช้ความเร็ว เพื่อความแม่นยำSpriteComponentชั้นเรียนของฉันมีVector2 Positionทุ่งนา เมื่อฉันโทรDrawฉันใช้เป็นหลักnew Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))สำหรับตำแหน่ง ผมมีข้อผิดพลาดก่อนที่แม้แต่วัตถุนิ่งจะพร่ามัว - นั่นเป็นเพราะผมใช้ตรงเวกเตอร์และไม่ปัดเศษค่าที่จะPosition intsถ้าฉันใช้Floor/ Ceilingแทนการปัดไปรอบ ๆ sprite / hovers (หนึ่งพิกเซลต่างกัน) และยังคงพร่ามัว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.