คำถามติดแท็ก hexagonal-grid

การบอกพื้นผิวอย่างสม่ำเสมอซึ่งใช้รูปหกเหลี่ยมปกติสำหรับการปูกระเบื้องตะแกรง

6
กริดหกเหลี่ยมแนวตั้ง vs แนวนอนข้อดีและข้อเสีย [ปิด]
ด้วยกริดฐานสิบหกคุณสามารถเลือกจัดเรียงกระเบื้องโดยให้ด้านที่แหลมหงายขึ้นเพื่อให้คุณสามารถเคลื่อนที่ไปตามแกนตะวันตก - ตะวันออกหรือคุณสามารถจัดเรียงขอบชิดขอบเพื่อให้คุณสามารถเคลื่อนที่ไปตามแกนเหนือ - ใต้ . กริดแบบหกเหลี่ยมแนวนอนหรือแนวตั้ง: ตารางฐานสิบหกในแนวตั้งหรือแนวนอน: ตามหน้านี้การจัดเรียงแนวตั้งคือ "โดยไกลที่นิยมมากที่สุด" ในเกม RPG แบบปากกาและกระดาษ แต่ไม่ได้อธิบายว่าทำไม โพสต์บล็อกนี้ยังกล่าวถึงพันธุ์ทั้งสอง แต่อีกครั้งไม่มีเหตุผลที่จะใช้อย่างใดอย่างหนึ่ง และถ้าคุณดูเกมพีซีบางเกมที่ใช้ hexes ดูเหมือนว่าทั้งคู่มีสมัครพรรคพวก: แนวนอน: Heroes of Might and Magic series (ยกเว้น V), Civilization V ... แนวตั้ง: Panzer General และ wargames ที่คล้ายกันต่อสู้เพื่อ Wesnoth ... แต่อะไรคือเหตุผลหลักในการเลือกเค้าโครงแนวตั้งหรือแนวนอนของกริดฐานสิบหก ฉันกำลังมองหาข้อดีและข้อเสียตามวัตถุประสงค์ในแง่ของโครงสร้างข้อมูลกราฟิกการเล่นเกม ฯลฯ ไม่ใช่การตั้งค่าส่วนตัว หรือมันไม่สำคัญจริงๆที่คุณเลือกการวางแนว?

4
ทำไมเราไม่ใช้แผนที่แปดเหลี่ยมแทนแผนที่หกเหลี่ยม?
ฉันเข้าใจถึงข้อดีของกระเบื้องหกเหลี่ยมที่อยู่เหนือสี่เหลี่ยมจัตุรัส แต่ทำไมไม่ใช้ octagons แทน? ฉันคิดว่าพวกเขาจะให้การเคลื่อนไหวที่ดีขึ้นเป็นธรรมชาติมากขึ้นในแปดทิศทาง ฉันกำลังคิดเกี่ยวกับการใช้แผนที่ชนิดนั้นในบางเกม แต่ฉันไม่เคยเห็นเกมใด ๆ ที่ใช้มันดังนั้นฉันสงสัยว่าฉันพลาดบางสิ่งบางอย่างที่เห็นได้ชัดเกี่ยวกับการใช้งานหรือไม่?

5
วิธีสร้างแผนที่โลกหกเหลี่ยมใน PHP จากฐานข้อมูลสำหรับเกมกลยุทธ์ที่ใช้เบราว์เซอร์
ฉันพยายามสร้างแผนที่โลกแบบหกเหลี่ยมสำหรับเกมวางกลยุทธ์บนเบราว์เซอร์ PHP ของฉัน ฉันสร้างตารางในฐานข้อมูลของฉันด้วยข้อมูลต่อแถว: id, type, x, y และครอบครอง โดยที่ type เป็นชนิดของไพ่ที่กำหนดไว้ในตัวเลข ตัวอย่างเช่น 1 คือหญ้า แผนที่มีขนาด 25 x 25 ฉันต้องการวาดแผนที่จากฐานข้อมูลด้วยไทล์ที่สามารถคลิกได้และความเป็นไปได้ในการนำทางแผนที่ด้วยลูกศร ฉันไม่รู้จริง ๆ เกี่ยวกับวิธีการเริ่มต้นด้วยสิ่งนี้และความช่วยเหลือใด ๆ จะได้รับการชื่นชม

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

2
รับวงแหวนของกระเบื้องในตารางหกเหลี่ยม
ขอบคุณบทความนี้: กระเบื้องหกเหลี่ยมและการค้นหาเพื่อนบ้านที่อยู่ติดกันฉันสามารถรวบรวมกระเบื้องที่อยู่ติดกับกระเบื้องที่กำหนดได้ แต่ฉันติดอยู่กับอัลกอริทึมที่ทำให้ฉัน "วงแหวน" ของกระเบื้องที่ระบุโดยออฟเซ็ตเท่านั้น อัลกอริทึมที่กำหนดในโพสต์สแต็คโอเวอร์โฟลว์ไม่สนใจลำดับที่รวบรวมไทล์ ฉันรู้ว่ามีการเพิ่ม 6 ออฟเซ็ตทุกแผ่น ออฟเซ็ต 1 ให้คุณได้ 6 ไทล์ ออฟเซ็ต 2 ให้ 12 ออฟเซ็ต 3 ให้ 18 และอื่น ๆ มีการเติบโตอย่างต่อเนื่องที่ 6 จากการชดเชยแต่ละครั้ง ดังนั้นฉันคิดว่าควรมีกฎที่ปรับให้เหมาะกับการชดเชยเหล่านี้ ฉันไม่สามารถหาอันนี้ได้อย่างแน่นอน ใคร?

3
รู้จัก clickbox หกเหลี่ยม
ฉันกำลังทำงานในเกมที่จะเกี่ยวข้องกับอ้าปากค้างรูปหกเหลี่ยม ในปัจจุบันฉันมีรูปหกเหลี่ยมที่ฉันใช้ (ทุกด้านยาวเท่ากัน ... มันพอดีกับภาพ 50px คูณ 50px) ฉันค่อนข้างใหม่กับ C # และใหม่จริง ๆ กับ XNA แต่มีวิธีการง่ายๆที่ฉันสามารถโทรหาได้มากกว่าที่จะทำข้อตกลงที่ซับซ้อนหากคำสั่งอิงตามจุดและมุม?
17 c#  xna  hexagonal-grid 

2
รูปแบบการยกระดับสำหรับกริดเกมหกเหลี่ยม
TL; DR: ที่ระดับความสูงควรยึดกับตารางหกเหลี่ยมสไตล์ civ? กึ่งกลางด้านหรือจุดสุดยอด? (หรือซับซ้อนยิ่งขึ้น?) คำถามที่เหมาะสม: ลองพิจารณาเกมคลาสสิกที่เราทุกคนรู้จักและชื่นชอบ (อาจ?) Alpha Centauri ของ Sid Meier แบบจำลองแผนที่แนะนำแนวคิดใหม่ของการยกระดับภูมิประเทศที่มองเห็นได้ให้กับสูตร Civ แบบคลาสสิก ใน SMAC ทุกจุดสุดยอดของบอร์ดเกมมีระดับความสูงทำให้แผนที่เนินเขาที่สวยงามมีความจำเป็นอย่างยิ่งโดยพิจารณาจากใจตัวหนอนที่กำลังรออยู่ทุกมุม แผนที่ระดับความสูงเฉพาะจุดยอดจะแปลเป็นตารางหกเหลี่ยมอย่างประณีตหรือไม่? ทางเลือกที่ชัดเจนคือการแมปการยกระดับด้านข้างและการยกระดับการแมปตามศูนย์ เช่นเดียวกับการทำแผนที่ระดับความสูงจากภายใน (ให้โอกาสสำหรับหน้าผา! ตัวเลือกสุดท้ายคือการใช้ตาข่ายรูปสามเหลี่ยมกับกริดเกมที่ครอบคลุมศูนย์และจุดยอดและมีการยกระดับจุดยอดอย่างเดียวหรือจุดยอดภายใน ตัวเลือกใดน่าจะใช้งานได้ดี มีแนวโน้มที่จะดูดน้ำผลไม้ทั้งหมดออกจากซีพียูและแรมอย่างรวดเร็ว?

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

3
รูปหกเหลี่ยมมีมิติเท่ากันที่ถูกใจ
มุมไหนและอัตราส่วนด้านยาว / สั้นด้านใดให้ค่า hex เท่ากันหมดที่น่าพอใจและเป็นภาพกราฟิกปกติ (แบนและแบนด้านบน) hexes ซึ่งแก้ไขเพิ่มเติมขนาดพิกเซลทั้งหมดสำหรับขนาดต่างๆเมื่อแสดงผล?

3
การค้นหาเส้นทางที่สั้นที่สุดบนตารางหกเหลี่ยม
ฉันกำลังเขียนเกมเทิร์นเบสที่มีองค์ประกอบการจำลอง ภารกิจหนึ่งที่ฉันต้องวางสายในขณะนี้คือการค้นหาเส้นทาง สิ่งที่ฉันต้องการจะทำคือขยับนักผจญภัย AI หนึ่งไทล์ให้ใกล้กับเป้าหมายโดยใช้ x, y และเป้าหมายของเขา x, y ในการพยายามคิดออกเองฉันสามารถกำหนด 4 ทิศทางไม่มีปัญหาโดยใช้ dx = currentX - targetY dy = currentY - targetY แต่ฉันไม่แน่ใจว่าจะกำหนดเส้นทางใดใน 6 ทิศทางที่เป็นเส้นทางที่ "ดีที่สุด" หรือ "สั้นที่สุด" ตัวอย่างเช่นวิธีการตั้งค่าในปัจจุบันฉันใช้ East, West, NE, NW, SE, SW แต่เพื่อไปที่ไทล์ NE ที่ฉันย้าย East และ NW แทนที่จะเป็นแค่การเคลื่อนย้าย NW ฉันหวังว่านี่ไม่ใช่การท่องเที่ยวทั้งหมด เพียงแค่ลิงค์หรือสองเพื่อเริ่มฉันจะดี ข้อมูลส่วนใหญ่ที่ฉันพบคือการวาดเส้นตารางและระบบการประสานงานแปลก ๆ ที่จำเป็น

4
สร้างภูมิภาคที่เท่าเทียมกันในแผนที่ฐานสิบหก
ยกตัวอย่างเช่นแผนที่ฐานสิบหกขนาดใหญ่ (X โดย Y) ฉันจะแบ่งออกเป็นภูมิภาค N ของฐานสิบหกที่เชื่อมต่อกันเพื่อจำลองประเทศได้อย่างไร เป้าหมายคือการสร้างแผนที่ฐานสิบหกที่ดูเหมือนแผนที่ชีวิตจริงกับประเทศที่มีรูปร่างแตกต่างกัน แต่มีขนาดเท่ากัน

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

6
อัลกอริทึมที่มีประสิทธิภาพสำหรับขอบเขตของชุดของกระเบื้อง
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันมีตารางเรียงต่อกันของขนาด จำกัด ที่ทราบซึ่งก่อตัวเป็นแผนที่ แผ่นบางแผ่นที่อยู่ในแผนที่จะถูกวางลงในชุดที่รู้จักกันในชื่ออาณาเขต ดินแดนนี้เชื่อมต่อกัน แต่ไม่มีใครรู้เกี่ยวกับรูปร่างของมัน ส่วนใหญ่มันจะเป็นหยดปกติ แต่อาจยืดออกไปได้ในทิศทางเดียวและอาจมีรูได้ ฉันสนใจที่จะค้นหาชายแดน (ด้านนอก) ของอาณาเขต นั่นคือฉันต้องการรายการของกระเบื้องทั้งหมดที่แตะหนึ่งในกระเบื้องในดินแดนโดยที่ตัวเองไม่ได้อยู่ในดินแดน วิธีที่มีประสิทธิภาพในการค้นหาสิ่งนี้คืออะไร? สำหรับความยากเป็นพิเศษมันเกิดขึ้นที่ไทล์ของฉันเป็น hexes แต่ฉันคิดว่ามันไม่ได้สร้างความแตกต่างมากนักแต่ละไทล์ยังคงมีพิกัด x และ y เป็นจำนวนเต็มและถ้ามีไทล์ฉันสามารถหาเพื่อนบ้านได้อย่างง่ายดาย ด้านล่างเป็นตัวอย่างบางส่วน: สีดำคืออาณาเขตและเส้นขอบสีน้ำเงินที่ฉันต้องการค้นหา สิ่งนี้ในตัวของมันเองไม่ใช่ปัญหาที่ยากเลยอัลกอริธึมง่ายๆสำหรับสิ่งนี้ใน pseudo-python คือ: def find_border_of_territory(territory): border = [] for tile in territory: for neighbor in tile.neighbors(): if neighbor not in territory and neighbor not in …

3
แสดงช่วงบนตารางหกเหลี่ยม
นี่คือสถานการณ์ ฉันมีกระดานหกเหลี่ยมและหน่วยบนมันมีค่าความเร็วหรือการเคลื่อนย้าย 4.Diffrent ภูมิประเทศมีค่าใช้จ่ายที่แตกต่างกันเมื่อฉันคลิกที่หน่วยเกมจะแสดงช่วงการเคลื่อนที่ ทางออกของฉันคือการตรวจสอบแต่ละ hex ในช่วง 4 กับ A * pathfinding และถ้าค่าพา ธ น้อยกว่า 4 แล้ว hex นี้อยู่ในช่วงเกมสุดท้ายแสดงให้ฉันเห็นช่วงของหน่วยนั้น คำถามของฉันคือ: มีวิธีอื่นในการค้นหาช่วงบนกริดฐานสิบหกหรือตารางกริดเพราะแม้ว่าฉันภูมิใจในสิ่งที่ฉันทำในโซลูชันของฉันฉันคิดว่ามันเป็นเรื่องเล็กน้อยเกินจริงหรือไม่ :)) อะไรทำให้ฉันถามคำถามนี้ฉันสังเกตเห็นว่าเมื่อความเร็วหน่วยเป็น 4 หรือ 6 หรือแม้กระทั่ง 8 ช่วงเวลาในการคำนวณสำหรับคอมพิวเตอร์ของฉันนั้นดีมาก แต่เมื่อความเร็วเท่ากับ 10 ขึ้นไปฉันสังเกตว่าฉันต้องรอสองสามวินาทีในการคำนวณ . ดีในเกมจริงฉันไม่เห็นอะไรเช่นนี้และการหาเส้นทาง A * ของฉันนั้นได้รับการปรับให้เหมาะสมดังนั้นฉันคิดว่าโซลูชันของฉันผิด ขอบคุณสำหรับคำตอบใด ๆ

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

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