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

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

1
ฉันควรจะเรียกเก็บขยะระหว่างการโหลดหน้าจอหรือไม่?
เมื่อเร็ว ๆ นี้ฉันอ่าน Garbage Collection เล็กน้อยจากความอยากรู้อยากเห็นและมีบางอย่างที่ทำซ้ำบ่อยๆ: การเก็บขยะอาจทำให้โปรแกรมช้าลงอย่างกระทันหันขึ้นอยู่กับ "ความลึก" ของคอลเลกชัน แต่ในวิดีโอเกมมีช่วงเวลาที่ผู้ใช้ไม่สามารถสังเกตเห็นความล่าช้าเล็กน้อย: หน้าจอการโหลด ดังนั้นฉันคิดว่าอาจเป็นประโยชน์ในการดำเนินการรวบรวมขยะเต็มรูปแบบในระหว่างขั้นตอนการโหลด (ผ่านทาง Collect ()) ต้องรออีกหนึ่งหรือสองวินาทีไม่ควรส่งผลกระทบต่อผู้ใช้จริงๆ คำถามของฉันคือมีประโยชน์จริง ๆ หรือไม่มีประโยชน์จริง ๆ ในการทำเช่นนี้หรือไม่?
9 c# 

3
อะไรคือความทันสมัยในการส่งมอบกราฟิกเกมเช่นไฟล์ BMP ขนาดเล็กจำนวนมาก? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว เรามีไฟล์ BMP ขนาดเล็กจำนวนมากซึ่งฉันคิดว่าจะคัดลอกได้ง่ายกว่าถ้าเรารวมมันไว้ใน TAR / ZIP / ใหญ่ ๆ อะไรคือสถานะของศิลปะในการจัดส่งกราฟิกเกม? เราใช้ C # และตระหนักถึง zlib เพียงระดมสมองเพื่อดูว่ามีโซลูชั่นอื่นใดที่ดีกว่า zlib หรือไม่

3
การตรวจจับการชนกันของกระเบื้องที่มีประสิทธิภาพสำหรับสี่เหลี่ยมจำนวนมากหรือไม่
ขณะนี้ฉันกำลังทำเกมตามแบบตัวเอง (คิดว่า Terraria แต่แปลกน้อยกว่านี้ (ฉันคิดว่านั่นเป็นคำหรือไม่ขออภัยถ้าไม่ใช่) อย่างไรก็ตามตอนนี้ฉันมีระบบตรวจจับการชนกันของข้อมูลทำงานได้ดี มีบางสิ่งที่น่ายินดีเป็นอย่างยิ่งที่ได้เห็นผีสางไม่วิ่งผ่านบล็อก แต่แล้วฉันก็มีความคิดที่จะสร้างมาตรฐาน ความคิดที่ไม่ดี 1,000 สี่เหลี่ยมไม่มีปัญหา 10,000 สแควร์สำหรับ 3 ตัวอักษรเป็นความล่าช้า 100,000 squares (แผนที่ใหญ่มาก) สำหรับ 3 ตัวละครนั้นเล่นไม่ได้ ฉันมีปัญหาที่ฉันไม่ต้องการพิจารณาบล็อกที่อยู่ไกลจากผู้เล่นตัวละครไอเท็ม ฯลฯ แต่ฉันไม่ต้องการโหลดหน่วยความจำที่เหลืออยู่เหล่านั้นอย่างต่อเนื่อง นี่คืออัลกอริทึมของฉันจนถึงตอนนี้อย่าลังเลที่จะวิจารณ์ foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between …

2
ข้อดีและข้อเสียของ Lua vs. Python เป็นภาษาสคริปต์สำหรับแพลตฟอร์ม XNA / C # คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังคิดจะไปให้เป็นหนึ่งในความคิดโบราณของฉันสำหรับเกม จุดสำคัญของเกมนี้จะเป็นระดับที่เป็นไปได้ของการปรับแต่งการทำงานของสภาพแวดล้อมของเกมและวัตถุ (เช่นการปรับเปลี่ยนพฤติกรรมของอาวุธยานอวกาศ) สำหรับเกมนี้จะต้องมีสคริปต์ นอกจากนี้ฉันไม่ได้มุ่งหวังที่จะขายมันเป็นเพียงความท้าทายการเขียนโปรแกรมที่น่าสนใจสำหรับฉัน ในขณะที่ฉันส่วนใหญ่เป็น. NET ผู้ชายฉันจะใช้ XNA / C # สำหรับเกมเอง สำหรับการเขียนสคริปต์ฉันคิดว่าจะไปกับ Python หรือ Lua ฉันเคยมีประสบการณ์กับงูหลามมาก่อนและไม่มีอะไรขัดกับภาษาเลย Lua ในทางกลับกันเกือบจะใหม่ทั้งหมดสำหรับฉันนอกเหนือจาก World of Warcraft เล็กน้อยบางส่วนยังมีการดัดแปลงเพิ่มเติมที่ฉันทำที่นี่และที่นั่นและมันก็ดูมีแนวโน้ม ดังนั้นนี่คือคำถามของฉัน: ข้อดีและข้อเสียของ Lua vs. Python เป็นภาษาสคริปต์สำหรับแพลตฟอร์ม XNA / C # คืออะไร เป็นหนึ่งในนั้นใช้งานง่ายขึ้นด้วย XNA / C #? มีหนึ่งในนั้นมีข้อดีหรือข้อเสียบางประการเมื่อใช้กับ XNA / …
9 xna  c#  scripting 

4
ฉันควรใช้เทคนิคใดเพื่ออำนวยความสะดวกในการสื่อสารระหว่าง XNA GameComponents (หรือระหว่างองค์ประกอบของเกมประเภทใดก็ได้)
ฉันเริ่มโครงการเกม 'ถูกต้อง' ครั้งแรกของฉันและฉันก็โดนบล็อกที่พยายามตัดสินใจว่าองค์ประกอบของเกมใน XNA ควรสื่อสารอย่างไร จากเหตุการณ์การเขียนโปรแกรม GUI (Java) GUI ก่อนหน้าตัวจัดการและผู้ฟังดูเหมือนจะเป็นทางไปข้างหน้า ดังนั้นฉันจึงมี Event Bus บางประเภทที่ยอมรับการลงทะเบียนกิจกรรมและคลาสที่สมัครเป็นสมาชิกของกิจกรรมเหล่านั้นพร้อมกับตัวจัดการเพื่อจัดการกับพวกเขา ตัวอย่างเช่น (pseudocode): class SpriteManager Update(){ if(player.collidesWith(enemy) // create new 'PlayerCollisionEvent' } class HUDManager onPlayerCollisionEvent(){ // Update the HUD (reduce lives etc) } อย่างไรก็ตามฉันไม่แน่ใจเกี่ยวกับการตั้งค่ารหัส (ใน C #) ที่จะต้องทำสิ่งนี้ให้สำเร็จ อะไรคือสิ่งที่คอยติดตามเหตุการณ์ (รถบัสบางประเภท) และมันมีโครงสร้างอย่างไร ดูเหมือนจะมีการกล่าวถึงมากมายเกี่ยวกับบริการเกมโดยที่คุณสามารถลงทะเบียน GameComponent ในคลาส Game.cs หลักของคุณจากนั้นดึงข้อมูลจากที่ใดก็ได้ในรหัสของคุณที่มีการอ้างอิงถึงวัตถุ 'เกม' …

1
คลื่นระลอกคลื่น
ฉันทำงานเกมป้องกันหอคอยมาระยะหนึ่งแล้วและตอนนี้ฉันก็พอใจกับผลลัพธ์มาก อย่างไรก็ตามมีสิ่งหนึ่งที่ฉันต้องการเพิ่ม ฉันเคยเห็นวิดีโอของ GeoDefense สำหรับ Windows Phone 7 แล้วที่นี่: http://www.youtube.com/watch?v=YhPr4A4LRPQ โปรดสังเกตว่า (เมื่อยูนิตถูกฆ่าหรือกระสุนปืนชนกับยูนิต) พื้นหลังจะเป็นระลอกคลื่นในเอฟเฟกต์ของคลื่นบางประเภท ฉันจะทำให้เทียบเท่าได้อย่างไร ฉันคิดว่าฉันต้องทำมันในจุดสุดยอดด้วยรูปสี่เหลี่ยมที่ทำจากจุดยอดต่างๆ คุณโทรอะไร แก้ไขเป็นสิ่งสำคัญที่จะต้องทราบว่าเกม XNA ของฉันไม่ได้สร้างขึ้นสำหรับ Windows phone แต่สำหรับพีซี Windows
9 xna  c#  hlsl 

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

2
ปรับขนาดไฟล์ภาพพิกเซลของฉันเมื่อออกแบบหรือเมื่อแสดงผล?
หากฉันสร้างไฟล์ภาพพิกเซลที่ต้องปรับขนาดบนหน้าจอในภายหลังเพื่อให้พิกเซลเดียวกลายเป็นกล่องขนาด 4 พิกเซล ฉันควรสร้างพิกเซลงานศิลปะของฉันด้วย 2x2 พิกเซลหรือฉันควรสร้างด้วยพิกเซล 1x1 เพื่อให้ฉันสามารถปรับขนาด 1: 2 ในภายหลังใน XNA เป็น 2x2 พิกเซลได้หรือไม่ ฉันมักจะเชื่อว่า 1: 1 จะให้รายละเอียดมากเกินไปมากกว่าเอฟเฟกต์พิกเซลดังนั้นฉันต้องการผลลัพธ์สุดท้ายในสไตล์ 2: 1 โดยที่ 1x1 พิกเซลของสไปรต์ที่ฉันตั้งใจจะใช้ 2x2 พิกเซลบนหน้าจอ
9 xna  c#  sprites 

2
ปัญหาการข้ามแพลตฟอร์มด้วยการชน AABB
ดูแผนภาพแรก: เมื่อเอนจิน AABB ฟิสิกส์ของฉันแก้ไขการตัดกันมันจะทำเช่นนั้นโดยการค้นหาแกนที่การแทรกซึมมีขนาดเล็กลงจากนั้น "ผลัก" เอนทิตีบนแกนนั้น พิจารณาตัวอย่าง "การย้ายที่กำลังกระโดดซ้าย" ถ้า velocityX ใหญ่กว่า velocityY AABB จะผลักเอนทิตีออกไปบนแกน Y แล้วหยุดการกระโดดได้อย่างมีประสิทธิภาพ (ผลลัพธ์: ผู้เล่นหยุดกลางอากาศ) ถ้า velocityX มีขนาดเล็กกว่า velocitY (ไม่แสดงในแผนภาพ) โปรแกรมทำงานตามที่ตั้งใจไว้เพราะ AABB ผลักเอนทิตีออกไปบนแกน X ฉันจะแก้ปัญหานี้ได้อย่างไร รหัสแหล่งที่มา: public void Update() { Position += Velocity; Velocity += World.Gravity; List<SSSPBody> toCheck = World.SpatialHash.GetNearbyItems(this); for (int i = 0; i < …

2
พื้นฐานเกมมัลติเพลเยอร์ออนไลน์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังทำงานกับเกมมัลติเพลเยอร์ออนไลน์ ac # แบบเรียลไทม์ จุดมุ่งหมายคือการมีการเชื่อมต่อลูกค้า / เซิร์ฟเวอร์โดยใช้โปรโตคอล UDP จนถึงตอนนี้ฉันใช้ UDP สำหรับการเคลื่อนไหวของผู้เล่นและ TCP สำหรับกิจกรรม (ผู้เล่นยิงผู้เล่นเสียชีวิต) เพราะฉันต้องแน่ใจว่าข้อมูลดังกล่าวจะมาถึงผู้เล่นทุกคนที่เชื่อมต่อกับเซิร์ฟเวอร์ ฉันรู้ว่า UDP ถูกกล่าวว่า 'ไม่น่าเชื่อถือ' และแพ็คเก็ตบางอย่างอาจสูญหายได้ แต่ฉันได้อ่านทุกที่เพื่อไม่ผสม TCP และ UDP เพราะอาจส่งผลต่อการเชื่อมต่อ คำถามหลักคือฉันจะจัดระเบียบเครือข่ายของฉันได้อย่างไร UDP ไม่มีการเชื่อมต่อฉันจะบันทึกว่าใครเป็นใครได้อย่างไร ฉันควรบันทึกที่อยู่ ip ของลูกค้าในรายการหรือไม่ ฉันควรใช้ TCP สำหรับเหตุการณ์สำคัญหรือใช้ UDP หรือไม่ ถ้าฉันต้องการใช้ UDP ฉันจะแน่ใจได้อย่างไรว่าข้อมูลจะไม่สูญหาย …

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

2
การย้ายเทพดาใน XNA / C # โดยใช้เวกเตอร์
ฉันกำลังดูการพัฒนาเกม XNA ด้วยภาษา C # ฉันมีสองคลาส: ตัวจัดการเกมหลักและคลาส "สไปรต์" ต่อไปนี้เป็นรหัสหลอกพื้นฐานที่ฉันหวังว่าจะอธิบายปัญหาได้อย่างเพียงพอ Game.cs class game { sprite the_sprite; void update(time) { var mouse = mouse.state if(mouse.clicked) { this.the_sprite.moveTo(mouse.x, mouse.y) } this.the_sprite.update(time) base.update(time) } } Sprite.cs class sprite { vector2 location; vector2 move_to; void moveTo(x, y) { this.move_to = new vector2(x, y) } void …
9 xna  c#  vector  movement 

7
วิกิพีเดียอัลกอริธึมการนำทาง * ใช้เวลานาน
ฉันติดตั้ง A * pathfinding ใน C # สำเร็จแล้ว แต่ช้ามากและฉันไม่เข้าใจว่าทำไม ฉันพยายามไม่เรียงลำดับรายการ openNodes แต่ก็ยังเหมือนเดิม แผนที่ 80x80 และมี 10-11 โหนด ฉันเอา pseudocode จากที่นี่Wikipedia และนี่คือการดำเนินการของฉัน: public static List<PGNode> Pathfind(PGMap mMap, PGNode mStart, PGNode mEnd) { mMap.ClearNodes(); mMap.GetTile(mStart.X, mStart.Y).Value = 0; mMap.GetTile(mEnd.X, mEnd.Y).Value = 0; List<PGNode> openNodes = new List<PGNode>(); List<PGNode> closedNodes = new List<PGNode>(); …

1
การสร้างเกมกระดาน AI
ฉันต้องการโค้ดเกมกระดานที่ชื่อ Okey และเป็นที่นิยมในตุรกีเป็นส่วนใหญ่ http://en.wikipedia.org/wiki/Okey แต่ฉันมีปัญหาเกี่ยวกับ AI Firslty ให้ฉันอธิบายเกม .. เกมนี้เล่นโดยผู้เล่น 4 คน ในเกมนี้มีไพ่ 106 ใบโดย 2 ในนั้นเป็นโจ๊กปลอม กระเบื้อง 104 ชิ้นแบ่งออกเป็น 4 สีโดยทั่วไปคือสีเขียวสีดำสีน้ำเงินและสีแดง ทุกสีมีสองชุดของไพ่ ชุด ise ประกอบด้วย 13 แผ่นที่เรียงตามลำดับหมายเลข 1 ถึง 13 ผู้เล่นแต่ละคนเริ่มต้น 14 แผ่น (หนึ่งเริ่มต้นที่ 15 และเริ่มต้นก่อน) และโยนหนึ่งในไพ่ที่ไม่ต้องการมากที่สุดในผู้เล่นถัดไป ผู้เล่นคนต่อไปสามารถรับไทล์นี้หรือสามารถรับไทล์อีกอันจากสแต็คตรงกลางโต๊ะ เกมที่เล่นในทวนเข็มนาฬิกา .. เป้าหมายของเกมนี้คือการหาลำดับที่ถูกต้องของ 14 แผ่นโดยเร็วที่สุด ผู้เล่นสามารถจัดเรียงไพ่เรียงตามหมายเลขตามลำดับในสีเดียวกันจนถึง 13 สำหรับการสอบสีเขียว 1, เขียว 2, …

1
Zune คุณสมบัติเช่นเดียวกับ WP7? (ท่าทาง, ความเร่ง)
เราไม่มี zune HD ในแคนาดา (แต่) เพียงแค่สงสัยว่ามันมีคุณสมบัติที่ตั้งโปรแกรมได้เหมือนกับ WP7 หรือไม่? ชอบท่าทางและ accelerometer โดยทั่วไปถ้าฉันเพิ่งสร้างเกมด้วยการควบคุมหน้าจอ (thumbsticks บนหน้าจอ) นี่เป็นพอร์ตที่ง่ายต่อการรับรางวัลหรือไม่? ขอบคุณ!

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