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

C # เป็นภาษาการเขียนโปรแกรมที่มีการจัดการพิมพ์อย่างรุนแรงรวบรวมขยะที่สร้างโดย Microsoft ร่วมกับแพลตฟอร์ม. NET

3
การเดินแบบสุ่มแบบเอนเอียงและอนุรักษ์นิยม
ฉันมีเทพดาซึ่งมีVelocityและทั้งเก็บไว้เป็นPosition Vector2ในแต่ละUpdateรอบความเร็วจะถูกเพิ่มเข้าไปในตำแหน่ง ฉันอยากให้สไปรต์เวกเตอร์ตัวที่สาม, Target. อาจมีการกำหนดเป้าหมายใหม่ในการวนซ้ำใด ๆ ฉันต้องการให้ผีสไปรต์เคลื่อนไหวเป็นหลักในรูปแบบการเดินแบบสุ่ม แต่ต้องมีพารามิเตอร์สองพารามิเตอร์ดังนี้: การเดินสุ่มโดยทั่วไปมีแนวโน้มที่จะเพิ่มหรือลดระยะทางให้เท่ากันTarget(บวกกับโอกาสเล็กน้อยของการเคลื่อนไหวแบบสัมผัส) ฉันต้องสามารถอคติการเดินแบบสุ่มของฉันในขณะที่ยังคงสุ่มทิศทางที่สไปรต์ "ตัดสินใจ" ควรมีแนวโน้มที่จะนำมันเข้ามาใกล้Targetยิ่งขึ้น การเดินแบบสุ่มควร "ราบรื่น" - สไปรต์ไม่ควรเปลี่ยนทิศทางอย่างรวดเร็วเนื่องจากจะดูเหมือนว่า "ริบหรี่" หรือ "สั่น" กับผู้เล่น มันควรค่อย ๆ เปลี่ยนทิศทางด้วยวิธีนี้หรืออย่างนั้นเคลื่อนแบบสุ่มในขณะที่เข้าใกล้อย่างช้า ๆ เมื่อเฉลี่ย อะไรคือวิธีที่ดีและเรียบง่ายในการทำสิ่งนี้? ถ้าเป็นไปได้ให้คำตอบเป็นVector2 RandomWalk(Vector2 target)วิธี ฉันมีNextGaussian(mean, stdev)วิธีที่ใช้ได้อยู่แล้วหากเป็นประโยชน์

7
ฉันจะใช้การหยิบไพ่แบบหกเหลี่ยมใน XNA ได้อย่างไร
ฉันมีแผนที่เรียงต่อหกเหลี่ยมซึ่งฉันต้องตรวจสอบเมื่อมีการคลิกรูปหกเหลี่ยม รูปหกเหลี่ยมไม่ได้สัมผัสจริง ๆ แต่มีช่องว่างเล็กน้อยระหว่างแต่ละจุด ไม่มีใครรู้ว่าฉันจะไปเกี่ยวกับการตรวจสอบว่ามีการคลิกหกเหลี่ยมโดยไม่ซับซ้อนเกินสิ่งทั้งหมดหรือไม่
13 c#  xna  hexagonal-grid 

1
รับตำแหน่งของจุดบนเส้นรอบวงของวงกลมให้มุม?
ฉันต้องการทราบวิธีการรับจุดเฉพาะในเส้นรอบวงของวงกลมให้มุม เส้นผ่าศูนย์กลางของวงกลมคือ 1 { X: 0.5, Y: 0.5 }และจุดศูนย์กลางของวงกลมคือ
13 xna  c#  mathematics 

6
วิธีจัดการกับอินพุตของเมาส์ใน XNA
ฉันกำลังพัฒนาการ์ดเกมใน XNA มีOnClickเหตุการณ์ใดใน XNA สำหรับวัตถุหรือไม่ ฉันพยายามที่จะทำให้ไพ่เคลื่อนที่เมื่อผู้เล่นคลิกที่ไพ่ ในโครงการนี้มีคลาส Sprite ที่วาดการ์ด แต่ฉันติดอยู่เล็กน้อยเพราะฉันไม่รู้วิธีใช้OnClickเหตุการณ์หรืออะไรทำนองนั้น
13 xna  c#  input  mouse 

3
เอาชนะการตรวจจับและ FFT
ฉันกำลังทำงานกับเกม platformer ซึ่งรวมถึงเพลงที่มีการตรวจจับจังหวะ ขณะนี้ฉันกำลังตรวจจับการเต้นด้วยการตรวจสอบว่าแอมพลิจูดปัจจุบันเกินกว่าตัวอย่างในอดีตหรือไม่ มันใช้งานไม่ได้กับแนวเพลงเช่นร็อคที่มีแอมพลิจูดค่อนข้างคงที่ ดังนั้นฉันจึงค้นหาเพิ่มเติมและพบอัลกอริทึมที่แยกเสียงออกเป็นหลาย ๆ วงโดยใช้ FFT ... จากนั้นฉันก็พบอัลกอริทึม Cooley-Tukey FFt ปัญหาเดียวที่ฉันมีคือฉันค่อนข้างใหม่กับเสียงและฉันไม่รู้ว่าจะใช้มันอย่างไรเพื่อแยกสัญญาณออกเป็นสัญญาณหลาย ๆ สัญญาณ ดังนั้นคำถามของฉันคือ: คุณจะใช้ FFT เพื่อแยกสัญญาณออกเป็นหลายแบนด์ได้อย่างไร? สำหรับคนที่สนใจนี่คืออัลกอริทึมของฉันใน c #: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = …

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
หน่วยทดสอบโครงการเกม C # / XNA
ฉันมีความสามารถในการพัฒนาเกมตั้งแต่เริ่มเขียนโปรแกรม แต่ไม่เคยจริงจัง ฉันทำงานในฐานะนักพัฒนาแอปทางธุรกิจ แต่ฉันทำงานกับบางเกมในเวลาว่าง ในโลกธุรกิจ (บน Microsft web-dev stack) ASP.NET MVC กำลังเป็นที่นิยมอย่างมากเนื่องจากความง่ายในการทดสอบหน่วยวิธีการทำงานของอินเตอร์เฟส ฉันสงสัยว่ารูปแบบการออกแบบใด (MVC, MVP, MVVM และอื่น ๆ ) ที่สามารถใช้เขียนเกมที่ตรรกะของเกมทั้งหมดสามารถทดสอบได้อย่างง่ายดาย เป็นไปได้หรือเป็นไปได้? ฉันเสียเวลาของฉันดีกว่าไหมในการสร้างแบบเต็มและเรียกใช้การทดสอบชนิด "รวม" แทนการทดสอบหน่วย? โค้ดตัวอย่างจะดีมาก แต่การเขียนก็มีประโยชน์เช่นกัน (ฉันพยายามเพิ่มแท็กการทดสอบหน่วย แต่ไม่จำเป็นต้องมีตัวแทน ... )

4
วิธีจัดการกับภาพขนาดใหญ่โดยพลการในเกม 2D?
คำถาม เมื่อคุณมีเกม 2D ที่ใช้ภาพที่มีขนาดใหญ่มาก (ใหญ่กว่าฮาร์ดแวร์ของคุณสามารถรองรับได้) คุณจะทำอย่างไร อาจมีวิธีแก้ปัญหาที่น่าสนใจสำหรับปัญหานี้ซึ่งไม่เคยเกิดขึ้นกับฉันมาก่อน ฉันกำลังทำงานกับผู้สร้างเกมผจญภัยกราฟิก ผู้ชมเป้าหมายของฉันคือผู้ที่มีประสบการณ์การพัฒนาเกม (และการเขียนโปรแกรม) เพียงเล็กน้อยหรือไม่มีเลย หากคุณทำงานกับแอปพลิเคชันเช่นนี้คุณไม่ต้องการให้มันจัดการกับปัญหาภายในแทนที่จะบอกให้คุณ "แยกภาพของคุณออก" บริบท เป็นที่ทราบกันดีว่าการ์ดกราฟิกกำหนดข้อ จำกัด เกี่ยวกับขนาดของพื้นผิวที่สามารถใช้ได้ ตัวอย่างเช่นเมื่อทำงานกับ XNA คุณจะถูก จำกัด ขนาดพื้นผิวสูงสุดที่ 2048 หรือ 4096 พิกเซลขึ้นอยู่กับโปรไฟล์ที่คุณเลือก โดยทั่วไปแล้วสิ่งนี้จะไม่ก่อปัญหามากในเกม 2D เพราะส่วนใหญ่มีระดับที่สามารถสร้างจากชิ้นส่วนที่เล็กกว่า (เช่นแผ่นกระเบื้องหรือสไปรต์ที่ถูกเปลี่ยนรูป) แต่ลองคิดถึงเกมผจญภัยกราฟิก point'nclick แบบคลาสสิค (เช่น Monkey Island) ห้องพักในเกมผจญภัยกราฟิกมักจะได้รับการออกแบบโดยรวมโดยมีส่วนที่ทำซ้ำได้น้อยหรือไม่มีเลยเหมือนกับจิตรกรที่ทำงานในแนวนอน หรืออาจเป็นเกมเช่น Final Fantasy 7 ที่ใช้ฉากหลังที่มีการแสดงผลขนาดใหญ่ ห้องเหล่านี้บางห้องมีขนาดใหญ่พอสมควรซึ่งมีความกว้างตั้งแต่สามหน้าจอขึ้นไป ตอนนี้ถ้าเราพิจารณาภูมิหลังเหล่านี้ในบริบทของเกมความละเอียดสูงที่ทันสมัยพวกเขาจะเกินขนาดพื้นผิวที่รองรับสูงสุดได้อย่างง่ายดาย ตอนนี้ทางออกที่ชัดเจนของเรื่องนี้คือการแบ่งพื้นหลังออกเป็นส่วนย่อย ๆ ที่พอดีกับความต้องการและวาดมันเคียงข้างกัน แต่คุณ (หรือศิลปินของคุณ) จะต้องเป็นคนที่แยกพื้นผิวทั้งหมดของคุณหรือไม่ …
13 xna  c#  2d  graphics  textures 

7
เป็นวิธีที่ดีในการจัดเก็บข้อมูล tilemap อะไร
ฉันกำลังพัฒนา platformer 2D กับเพื่อน ๆ เราได้ใช้ชุดเริ่มต้น XNA Platformer ซึ่งใช้ไฟล์. txt เพื่อจัดเก็บแผนที่ย่อย ในขณะที่ง่าย แต่ก็ไม่ได้ให้การควบคุมและความยืดหยุ่นเพียงพอกับการออกแบบระดับ ตัวอย่าง: สำหรับเนื้อหาหลายเลเยอร์จำเป็นต้องใช้หลายไฟล์วัตถุแต่ละชิ้นได้รับการแก้ไขบนกริดไม่อนุญาตให้มีการหมุนของวัตถุจำนวนอักขระที่ จำกัด เป็นต้นดังนั้นฉันจึงทำการวิจัยเกี่ยวกับวิธีการจัดเก็บข้อมูลระดับ และไฟล์แผนที่ สิ่งนี้เกี่ยวข้องกับการจัดเก็บระบบไฟล์ของแผนที่ย่อยไม่ใช่โครงสร้างข้อมูลที่เกมจะใช้ในขณะที่ทำงานอยู่ การแมปไทล์ถูกโหลดลงในอาร์เรย์ 2D ดังนั้นคำถามนี้เกี่ยวกับแหล่งที่มาเพื่อเติมอาร์เรย์ การใช้เหตุผลสำหรับฐานข้อมูล: จากมุมมองของฉันฉันเห็นความซ้ำซ้อนของข้อมูลน้อยลงโดยใช้ฐานข้อมูลเพื่อเก็บข้อมูลไทล์ ไทล์ในตำแหน่ง x, y ที่มีคุณสมบัติเหมือนกันสามารถนำกลับมาใช้ใหม่ได้จากระดับหนึ่งไปอีกระดับ ดูเหมือนว่ามันจะง่ายพอที่จะเขียนวิธีการดึงไทล์ทั้งหมดที่ใช้ในระดับเฉพาะจากฐานข้อมูล เหตุผลสำหรับ JSON / XML: ไฟล์ที่สามารถแก้ไขได้ด้วยสายตาการเปลี่ยนแปลงสามารถติดตามผ่าน SVN ได้ง่ายขึ้นมาก แต่มีเนื้อหาซ้ำแล้วซ้ำอีก มีข้อเสียใด ๆ (เวลาโหลด, เวลาในการเข้าถึง, หน่วยความจำและอื่น ๆ ) เปรียบเทียบกับอีกรุ่นหรือไม่? และสิ่งที่ใช้กันทั่วไปในอุตสาหกรรม? ปัจจุบันไฟล์มีลักษณะดังนี้: .................... .................... .................... …
13 xna  c#  xml 

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

6
วิธีการ Color.Lerp ระหว่างหลายสี?
ฉันพบว่ามันค่อนข้างยากที่จะหาทางแก้ไขในเอกสาร Unity Color.Lerp(Color a, Color b, float t) เป็นฟังก์ชั่นที่ค่อยๆเปลี่ยนสีตามขั้นตอน t โดยให้ค่าสุดท้ายของ Color b ฉันจะ Lerp ระหว่างสีหลายสีทีละคน?
12 c#  unity  color  lerp 

5
ฉันจะพูดคุยเกี่ยวกับอัลกอริธึมบรรทัดของ Bresenham ไปยังจุดลอยตัวได้อย่างไร
ฉันพยายามรวมสองสิ่งเข้าด้วยกัน ฉันกำลังเขียนเกมและฉันจำเป็นต้องกำหนดสี่เหลี่ยมกริดที่วางอยู่บนเส้นตรงกับจุดสิ้นสุดของจุดลอยตัว ยิ่งกว่านั้นฉันต้องการมันเพื่อรวมสี่เหลี่ยมกริดทั้งหมดที่มันแตะ (เช่นไม่ใช่แค่เส้นของ Bresenhamแต่เป็นสีน้ำเงิน): มีใครให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการใช้หรือไม่ วิธีแก้ปัญหาที่ชัดเจนคือการใช้อัลกอริธึมแบบไร้เดียงสา แต่มีบางสิ่งที่ได้รับการปรับให้เหมาะสมที่สุด (เร็วกว่า)?

3
ฉันจะตั้งค่าแอปพลิเคชันของฉันให้ทำงานบน GPU ประสิทธิภาพสูงเป็นค่าเริ่มต้นได้อย่างไร
ปัจจุบันแล็ปท็อปจำนวนมากมาพร้อมกับ GPU 2 ตัวซึ่งเป็นรุ่นที่มีประสิทธิภาพสูงและรุ่นประหยัดพลังงานหนึ่งตัว (มีประสิทธิภาพน้อยลง) แอพพลิเคชั่นส่วนใหญ่ที่ฉันใช้บนแล็ปท็อปของฉันทำงานด้วย GPU ในตัว (ประหยัดพลังงาน) แต่ก็ยังมีบางส่วนที่เปิดไว้พร้อมการ์ดประสิทธิภาพสูง ฉันพยายามกำหนดค่าแอพที่ฉันกำลังสร้างเพื่อให้ทำงานบน GPU ประสิทธิภาพสูงโดยค่าเริ่มต้น แต่ฉันไม่สามารถหาข้อมูลเกี่ยวกับหัวข้อใดก็ได้ ฉันหวังว่าบางคนสามารถหลั่งน้ำตาของแสงนี้ ฉันจะแจกจ่ายแอปพลิเคชันของฉันด้วยโปรแกรมติดตั้ง NSIS และฉันเดาว่าฉันจะต้องเพิ่มเส้นทางของแอปพลิเคชันของฉันไปยังรายการแอปพลิเคชันสำหรับการ์ด NVidia / ATI แอปพลิเคชันได้รับการโปรแกรมใน C # นอกจากนี้ไม่มีใครรู้ว่าสิ่งที่ยืนอยู่กับเดสก์ทอปพีซี? จะเกิดอะไรขึ้นถ้าพีซีมี GPU 2 ตัวและฉันต้องเลือกอันทรงพลังมากขึ้น? Milcho
12 c#  gpu 

6
บอลฟิสิกส์: ทำให้การเด้งสุดท้ายเป็นไปอย่างราบรื่นเมื่อลูกบอลหยุดนิ่ง
ฉันได้เจอกับปัญหาอื่นในเกมลูกบอลกระดอนเล็ก ๆ ของฉัน ลูกของฉันกระดอนไปรอบ ๆ อย่างดียกเว้นในช่วงเวลาสุดท้ายที่กำลังจะมาพัก การเคลื่อนไหวของลูกบอลนั้นราบรื่นสำหรับส่วนหลัก แต่ในท้ายที่สุดลูกบอลก็กระตุกในขณะที่มันตกลงบนด้านล่างของหน้าจอ ฉันเข้าใจได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น แต่ฉันไม่สามารถทำให้มันราบรื่น ฉันจะขอบคุณสำหรับคำแนะนำใด ๆ ที่สามารถนำเสนอ รหัสอัพเดทของฉันคือ: public void Update() { // Apply gravity if we're not already on the ground if(Position.Y < GraphicsViewport.Height - Texture.Height) { Velocity += Physics.Gravity.Force; } Velocity *= Physics.Air.Resistance; Position += Velocity; if (Position.X < 0 || Position.X …
12 xna  c#  physics 

2
C # สร้างเกมงูง่าย ๆ
ฉันกำลังคิดเกี่ยวกับการสร้างเกมงูด้วย C # ดังนั้นฉันจึงวิ่งความคิดในหัวของฉันและปัญหาบางอย่างเกิดขึ้น ฉันจะติดตามและส่งออกไปยังตำแหน่งที่ถูกต้องของบล็อกที่วิ่งตามหัวงูได้อย่างไร? หากงูนั้นสร้างขึ้นด้วยห้าบล็อกและผู้ใช้เริ่มเป็นวงกลมฉันจะพิมพ์ร่างงูในตำแหน่งที่ถูกต้องได้อย่างไร นอกจากนี้ฉันจะสร้างการกระทำที่จะทำงานบนพื้นหลังได้อย่างไรซึ่งจะทำให้งูข้างหน้าไม่ว่าผู้ใช้จะทำอะไร รหัสของฉันควรมีโครงสร้างอะไร (โครงสร้างการออกแบบรหัส) นี่ควรเป็นแอปพลิเคชันคอนโซลเนื่องจากเป็นเพียงกรอบงานเดียวที่ฉันคุ้นเคย ฉันไม่ได้มองหารหัสที่เสร็จสมบูรณ์แล้วเพราะฉันต้องการที่จะเข้าใจว่ามันควรจะทำงานอย่างไร
12 c# 

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