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

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

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
การจัดการส่วนประกอบที่เขียนสคริปต์และ "ดั้งเดิม" ในระบบเอนทิตีที่อิงองค์ประกอบ
ขณะนี้ฉันกำลังพยายามใช้ระบบเอนทิตีที่อิงองค์ประกอบเป็นหลักโดยที่เอนทิตีนั้นเป็นเพียง ID และวิธีการช่วยเหลือบางอย่างที่ผูกส่วนประกอบหลายอย่างเข้าด้วยกันเพื่อสร้างวัตถุเกม เป้าหมายบางประการของที่รวมถึง: ส่วนประกอบประกอบด้วยสถานะ (เช่นตำแหน่งสุขภาพจำนวนกระสุน) => ตรรกะเข้าสู่ "ระบบ" ซึ่งดำเนินการส่วนประกอบเหล่านี้และสถานะของพวกเขา (เช่น PhysicsSystem, RenderSystem ฯลฯ ) ฉันต้องการใช้ส่วนประกอบและระบบทั้งใน C # และผ่านการเขียนสคริปต์ (Lua) โดยทั่วไปฉันต้องการที่จะสามารถกำหนดส่วนประกอบและระบบใหม่ทั้งหมดใน Lua ได้โดยตรงโดยไม่ต้องคอมไพล์ต้นฉบับ C # ของฉันอีกครั้ง ตอนนี้ฉันกำลังมองหาแนวคิดเกี่ยวกับวิธีจัดการสิ่งนี้อย่างมีประสิทธิภาพและไม่สม่ำเสมอดังนั้นฉันไม่จำเป็นต้องใช้ไวยากรณ์ที่แตกต่างเพื่อเข้าถึงคอมโพเนนต์ C # หรือส่วนประกอบ Lua ตัวอย่างเช่น แนวทางปัจจุบันของฉันคือการใช้ส่วนประกอบ C # โดยใช้คุณสมบัติสาธารณะทั่วไปอาจตกแต่งด้วยแอตทริบิวต์บางอย่างที่บอกบรรณาธิการเกี่ยวกับค่าเริ่มต้นและเนื้อหา จากนั้นฉันจะมี "ScriptComponent" ระดับ C ซึ่งเพิ่งล้อมตาราง Lua ภายในด้วยตารางนี้ถูกสร้างขึ้นโดยสคริปต์และเก็บสถานะทั้งหมดของประเภทองค์ประกอบเฉพาะนั้น ฉันไม่ต้องการเข้าถึงสถานะดังกล่าวจากด้าน C # มากเท่าที่ฉันจะไม่ทราบในเวลารวบรวมสิ่งที่ ScriptComponents พร้อมกับคุณสมบัติใดบ้างที่จะมีให้ฉัน ถึงกระนั้นผู้แก้ไขจะต้องเข้าใช้งาน …

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

5
2D การแบ่งพาร์ติชันเป็นทางเลือกสำหรับแฮชเชิงพื้นที่และควอดทรี
ฉันกำลังพยายามใช้อัลกอริทึมการแบ่งพาร์ติชันในเกมของฉัน แต่ทั้งแฮชเชิงพื้นที่และควอดทรีไม่ใช่สิ่งที่ฉันกำลังมองหา ขนาดระดับของฉันไม่ควร จำกัด (เฉพาะ Int32 จำกัด ) ฉันต้องการอัลกอริทึมการแบ่งพาร์ติชันที่ไม่ต้องการ "ความกว้างระดับ" และ "ระดับความสูง" ฉันมีวัตถุทางกายภาพที่เคลื่อนไหวมากมาย ฉันต้องการอัลกอริทึมที่เร็วพอที่จะรองรับวัตถุมากกว่า 500+ ทางเลือกใด ๆ

5
อินพุตแบบซ้อนในระบบที่ขับเคลื่อนโดยเหตุการณ์
ฉันใช้ระบบจัดการการป้อนข้อมูลตามเหตุการณ์กับกิจกรรมและผู้รับมอบสิทธิ์ ตัวอย่าง: InputHander.AddEvent(Keys.LeftArrow, player.MoveLeft); //Very simplified code อย่างไรก็ตามฉันเริ่มสงสัยเกี่ยวกับวิธีจัดการกับอินพุต 'ซ้อน' ยกตัวอย่างเช่นใน Half-Life 2 (หรือเกมใด ๆ ที่มาจริงๆ) Eคุณสามารถเลือกรายการที่มี เมื่อคุณหยิบรายการขึ้นมาคุณจะไม่สามารถยิงได้Left Mouseแต่คุณจะโยนวัตถุแทน Spaceคุณยังสามารถกระโดดด้วย (ฉันกำลังบอกว่าการป้อนข้อมูลแบบซ้อนเป็นที่ที่คุณกดแป้นบางอย่างและการกระทำที่คุณสามารถทำได้เปลี่ยนเมนูไม่ใช่) สามกรณีคือ: ความสามารถในการกระทำเช่นเดียวกับเมื่อก่อน (เช่นการกระโดด) ไม่สามารถทำการกระทำเดียวกัน (เช่นการยิง) การกระทำที่แตกต่างอย่างสิ้นเชิง (เช่นใน NetHack ซึ่งการกดปุ่มเปิดประตูหมายความว่าคุณไม่เคลื่อนไหว แต่เลือกทิศทางเพื่อเปิดประตูเข้า) แนวคิดดั้งเดิมของฉันคือเปลี่ยนเพียงหลังจากได้รับอินพุต: Register input 'A' to function 'Activate Secret Cloak Mode' In 'Secret Cloak Mode' function: Unregister input 'Fire' Unregister input …

4
ฉันจะสร้าง ID เกมที่ใช้งานง่ายและเป็นเอกลักษณ์ได้อย่างไร
ฉันจะสร้าง ID เกมที่ไม่ซ้ำซึ่งยังใช้งานง่ายได้อย่างไร - เพื่อให้ผู้ใช้รายหนึ่งสามารถให้ ID เกมนั้นกับคนอื่นเพื่อเข้าร่วมเกมได้อย่างง่ายดาย ฉันกำลังสร้างเกมของฉันใน Silverlight ด้วย C #
11 c#  silverlight 

1
ฉันจะรับจานสีของพื้นผิว 8 บิตใน SDL.NET/Tao.SDL ได้อย่างไร
ฉันกำลังมองหาพาเล็ตของพื้นผิว 8 บิตใน SDL.NET ถ้าเป็นไปได้หรือ (มากกว่าที่เป็นไปได้) โดยใช้ Tao.SDL นี่เป็นเพราะฉันต้องการให้ palette สลับกับ palette โดยตรงแทนที่จะเป็น blitting surface เข้าด้วยกันเพื่อแทนที่สีเหมือนที่คุณจะทำกับพื้นผิวแบบ 32 บิต ฉันได้ SDL_Surface และ SDL_PixelFormat แล้ว แต่เมื่อฉันไปเพื่อรับพาเล็ตในลักษณะเดียวกันฉันจะได้รับ System.ExecutionEngineException: private Tao.Sdl.Sdl.SDL_Palette GetPalette(Surface surf) { // Get surface. Tao.Sdl.Sdl.SDL_Surface sdlSurface = (Tao.Sdl.Sdl.SDL_Surface)System.Runtime.InteropServices.Marshal.PtrToStructure(surf.Handle, typeof(Tao.Sdl.Sdl.SDL_Surface)); // Get pixel format. Tao.Sdl.Sdl.SDL_PixelFormat pixelFormat = (Tao.Sdl.Sdl.SDL_PixelFormat)System.Runtime.InteropServices.Marshal.PtrToStructure(sdlSurface.format, typeof(Tao.Sdl.Sdl.SDL_PixelFormat)); // Execution exception …
11 c#  image  palette 

5
กรอบงาน XNA เหมาะสมกับการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์หรือไม่
ฉันกำลังมองหาการสร้างข้อความที่ใช้ MUD ดังนั้นองค์ประกอบจำนวนมากของกรอบ XNA ดูเหมือนจะเหมาะสมกับสิ่งที่ฉันต้องการ โดยเฉพาะอย่างยิ่งสิ่งต่าง ๆ เช่นวนเกมทั่วไประบบเครือข่าย ฯลฯ ดูเหมือนว่า XNA จะถูกผนวกเข้ากับสภาพแวดล้อมแบบโต้ตอบกับ UI และเสียงดังนั้นฉันไม่แน่ใจว่ามันเป็นวิธีที่ถูกต้องหรือไม่ มันจะง่ายขึ้นหรือไม่ที่จะสร้างมุมมองประเภทนี้ใหม่ขึ้นมาเองลองโค้ง XNA ตามที่ฉันต้องการหรือมีกรอบที่ดีกว่าสำหรับงานประเภทนี้
11 c#  xna 

3
วิธีที่มีประสิทธิภาพที่สุดในการแปลง Vector3 เป็น Vector2
วิธีที่มีประสิทธิภาพและรวดเร็วที่สุดในการแปลง Vector3 เป็น Vector2 คืออะไร การคัดเลือกนักแสดง: Vector2 vector2 = (Vector2)vector3; การเริ่มต้น Vector2 ใหม่: Vector2 vector2 = new Vector2(vector3.x, vector3.y); หรือมีวิธีอื่นที่ฉันไม่รู้
11 unity  c#  performance 

1
เปลี่ยนเทพดาของวัตถุในเอกภาพ
ภายในโค้ดสคริปต์ของฮีโร่ (วัตถุ) ฉันต้องการเพิ่มความเป็นไปได้ในการเปลี่ยนสไปรต์ ดังนั้นผู้เล่นกดปุ่ม space และ sprite เปลี่ยนเป็น sprite อื่น ๆ ที่เพิ่มเข้าไปในโครงการ คุณสามารถให้รหัสตัวอย่างแก่ฉันเพื่อทำสิ่งนี้ได้หรือไม่
11 c#  2d  unity  sprites 

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

4
ฉันจะตรวจสอบได้อย่างมีประสิทธิภาพว่าจุดอยู่ภายในสี่เหลี่ยมหมุนอย่างไร
ส่วนหนึ่งเพื่อประโยชน์ในการเพิ่มประสิทธิภาพส่วนหนึ่งเพื่อจุดประสงค์ในการเรียนรู้ฉันจะกล้าถาม: ฉันจะตรวจสอบได้อย่างมีประสิทธิภาพมากที่สุดว่าจุด 2D นั้นPอยู่ในสี่เหลี่ยมหมุนรอบสองมิติXYZWโดยใช้ C # หรือ C ++ อย่างไร ขณะนี้สิ่งที่ฉันกำลังทำคือการใช้อัลกอริทึม "จุดเป็นรูปสามเหลี่ยม" ที่พบในหนังสือการตรวจหาการชนกันแบบเรียลไทม์และเรียกใช้สองครั้ง (สำหรับสามเหลี่ยมสองรูปที่ประกอบเป็นสี่เหลี่ยมพูด XYZ และ XZW): bool PointInTriangle(Vector2 A, Vector2 B, Vector2 C, Vector2 P) { // Compute vectors Vector2 v0 = C - A; Vector2 v1 = B - A; Vector2 v2 = P - A; // Compute …

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

4
มีเฟรมเวิร์กใดบ้างที่อนุญาตให้ฉันเขียนเกมใน C # บน Linux? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังมองหาบางอย่างที่เป็นทางเลือกของ XNA - ฉันไม่สนใจหรอกว่าเป็นเครื่องมือ 2D หรือ 3D ไม่ใช่เพราะฉันไม่ชอบ Windows หรือเป็น anti-Microsoft เป็นเพราะฉันชอบใช้ Linux โค้ดใน Linux อย่างสมบูรณ์ (สำหรับ C # ฉันใช้ Mono อย่างชัดเจน) และไม่เคยมีฮาร์ดแวร์ใด ๆ ที่จะสนับสนุนการเขียนโปรแกรมใน XNA จริง ๆ เพียงเพราะการ์ดวิดีโอของฉันอายุ 6 ปี ฉันยังไม่มีซีดี Windows 7 / Vista สำหรับ DirectX 10 …
10 xna  c# 

3
ทำไมต้อง PHP มากกว่า C # สำหรับ PBBG [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเป็นผู้พัฒนา C # และต้องการเริ่มโครงการงานอดิเรกเพื่อสร้างเกมที่ใช้เบราว์เซอร์แบบถาวร (PBBG) ฉันทำงานกับ C #, MSSQL และ Angular และคิดว่าฉันจะใช้เทคนิคเหล่านั้นสำหรับโครงการงานอดิเรกของฉันเช่นกัน เมื่อฉันเริ่มค้นหาสิ่งที่ต้องทำและบริจาคและเคล็ดลับฉันรู้ว่ามีโครงการจำนวนมากที่ใช้ PHP และฉันไม่พบ PBBG ที่ใช้ C # ซึ่งจริง ๆ แล้วฉันรู้สึกแปลกใจจริงๆ ดูเหมือนว่าสแต็กที่ฉันทำงานด้วย (C #, MSSQL, Angular) สามารถเหมาะกับ PBBG ได้ เหตุผลเดียวที่ฉันนึกถึง C # ที่ไม่ได้ใช้งานก็คือราคาอันมหาศาลของ Visual Studio และความจริงที่ว่ามันไม่ใช่โอเพ่นซอร์ส มีเหตุผลอื่นหรือฉันแค่แย่ที่หาโครงการที่ใช้ C …

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