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

2D หมายถึงพื้นที่สองมิติที่มีการแสดงพิกัดด้วยค่า X และ Y

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

2
วิธีที่มีประสิทธิภาพมากขึ้นในการติดตั้ง Line of sight บนตาราง 2d ด้วยการฉายรังสี?
พิจารณาตารางไพ่แบบ 2d และขอบเขตของพิกัดโดยประมาณ - ซึ่งอยู่กึ่งกลางผู้เล่น - ซึ่งแสดงถึงเส้นสายตา เป้าหมายคือเพื่อป้องกันสายตาที่มองข้ามสิ่งกีดขวาง (เช่นกำแพง) มันค่อนข้างง่ายที่จะตรวจสอบว่ามีเซลล์ใดในขอบเขตของสายตาที่มองเห็นหรือไม่: ฉายรังสีจากผู้เล่นไปยังเซลล์เป้าหมายโดยใช้Bresenham's - หากหนึ่งในเซลล์ที่ทับซ้อนกันระหว่างผู้เล่นและเป้าหมายนั้นเป็นอุปสรรคเซลล์เป้าหมาย ไม่สามารถมองเห็นได้ ตอนนี้ความคิดแรกของฉันคือการวนซ้ำไปตามเซลล์กริดทั้งหมดในแนวสายตา - แต่ดูเหมือนว่าจะไม่มีประสิทธิภาพสำหรับฉัน ตัวอย่างเช่นหากผู้เล่นยืนอยู่ติดกับกำแพงและคุณกำหนดว่ามองไม่เห็นเซลล์ที่อยู่นอกกำแพงคุณสามารถระบุเซลล์ทั้งหมดบนรังสีหลังจากนั้นจะมองไม่เห็น นอกจากนี้ยังพิจารณาการส่งรังสีไปยังแต่ละเซลล์ตามแนวรัศมีของสายตาและวนเซลล์แต่ละเซลล์ตามแต่ละรังสี - แต่ฉันจะทำการประมวลผลเซลล์มากกว่าหนึ่งครั้ง มีวิธีที่มีประสิทธิภาพมากกว่านี้ไหม ในขณะที่วนซ้ำ ~ 50 เซลล์ต่อเทิร์นคือการคำนวณที่ค่อนข้างเบาฉันจะเร่งความเร็ว - เป้าหมายคือสามารถหมุนเวียนรอบ ๆ ไม่กี่รอบต่อวินาทีในการเล่นอัตโนมัติ ดังนั้นยิ่งฉันมีประสิทธิภาพมากเท่าไร

5
การตรวจจับการชนกันแบบ 2 มิติสำหรับเกมพินบอล
จนถึงตอนนี้ในเกมก่อนหน้านี้ฉันใช้การชนสองมิติแบบง่ายกับกล่องจากนั้นตรวจสอบที่ระดับพิกเซลเพื่อการชนกัน หากทำเกมพินบอลในเฟรมจำนวนมากลูกจะสัมผัสกับกำแพงหรือพื้นผิวอื่นดังนั้นจะมีวิธีอื่นหรือไม่?

1
ทรัพยากรสถาปัตยกรรมระบบการต่อสู้ JRPG แบบเลี้ยวตาม
หลายเดือนที่ผ่านมาฉันกำลังยุ่งกับการเขียนโปรแกรม 2D JRPG (RPG สไตล์ญี่ปุ่น) ใน C ++ โดยใช้ห้องสมุด SDL โหมดการสำรวจทำมากหรือน้อย ตอนนี้ฉันจัดการกับโหมดการต่อสู้ ฉันไม่สามารถหาแหล่งข้อมูลเกี่ยวกับวิธีการจัดโครงสร้างระบบการต่อสู้ JRPG แบบคลาสสิกได้ ทั้งหมดที่ฉันพบคือการอภิปรายเกี่ยวกับสูตรความเสียหาย ฉันได้ลองใช้ Google ค้นหากระดานข้อความของ gamedev.net และรวบรวมข้อมูลผ่าน C ++ - คำถามที่เกี่ยวข้องที่นี่ใน Stack Exchange ฉันได้ลองอ่านซอร์สโค้ดของ RPG แบบโอเพ่นซอร์สที่มีอยู่แล้ว แต่หากไม่มีแนวทางบางอย่างมันก็เหมือนกับการพยายามหาเข็มในกองหญ้า ฉันไม่ได้มองหาชุดของกฎอย่าง D&D หรืออะไรทำนองนั้น ฉันกำลังพูดถึงการออกแบบโค้ดและโครงสร้างวัตถุอย่างแท้จริง ระบบการต่อสู้ขอให้ผู้เล่นป้อนข้อมูลโดยใช้เมนู ถัดไปที่เทิร์นการต่อสู้จะถูกดำเนินการในฐานะวีรบุรุษและศัตรูดำเนินการกระทำของพวกเขา ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม ขอบคุณล่วงหน้า.
9 c++  2d  architecture  sdl  rpg 

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

2
ฟังก์ชั่นสำหรับการเคลื่อนไหวของดวงอาทิตย์?
ดังนั้นเมื่อสไปรต์ดวงอาทิตย์ถูกวางที่ขอบฟ้า (x = 0, y = worldheight / 2) ฉันพยายามคิดฟังก์ชั่นเพื่อทำให้ดวงอาทิตย์ขึ้นแล้วตก วิธีที่ดีที่สุดในการทำเช่นนี้คือฟังก์ชั่นบาป แต่ฉันไม่รู้ว่าจะใช้มันอย่างไร หากใช้ y = sin (x) ดังนั้น x จะต้องอยู่ในช่วงระหว่าง 0 ถึง pi สำหรับเส้นโค้งเต็มขณะที่มีความเร็วคงที่สำหรับ X ความคิดหรือข้อเสนอแนะ? แก้ไข: ขอบคุณครับ!

1
ตั้งเทพดาหันไปทางทิศทางของเมาส์
ฉันกำลังสร้างเกม html5 canvas และฉันต้องการวิธีที่จะทำให้เทพดาของฉันเผชิญหน้ากับเคอร์เซอร์ของเมาส์ ฉันมีพิกัด X และ Y สำหรับ sprite และพิกัด X และ Y ของตัวชี้ ทั้งหมดที่ฉันติดอยู่คือคณิตศาสตร์ที่เกี่ยวข้องกับการทำให้ผีสางหน้าตัวชี้ มันคือทั้งหมดในโลก 2 มิติดังนั้นฉันไม่สามารถจินตนาการได้ว่ามันจะซับซ้อนเกินไป แต่ฉันมีประสบการณ์น้อยมากกับสิ่งนี้ นอกจากนี้ลิงก์ที่มีประโยชน์ใด ๆ ไปยังบทความ / บล็อกโพสต์เกี่ยวกับสิ่งต่าง ๆ เช่นนี้จะยอดเยี่ยมมาก ในการเพิ่มฉันควรทราบว่าฉันต้องการมุมเป็นองศาที่จะนำฉันไปยังเคอร์เซอร์โดยใช้ตำแหน่ง X และ Y ฉันจะรู้พิกัดของเคอร์เซอร์ได้อย่างไรและฉันจะวางสิ่งเหล่านี้ทั้งหมดได้ที่ไหน?
9 2d  html5  html-canvas 

3
กำลังเดินสแควร์: การค้นหาหลาย contours ภายในเขตข้อมูลเดียว?
โดยหลักแล้วนี่เป็นคำถามที่ติดตามปัญหาเมื่อไม่กี่สัปดาห์ที่ผ่านมาแม้ว่าจะเป็นเรื่องเกี่ยวกับอัลกอริทึมโดยทั่วไปโดยไม่ต้องใช้กับปัญหาจริงของฉัน อัลกอริทึมโดยทั่วไปค้นหาทุกบรรทัดในรูปภาพเริ่มจากด้านบนซ้ายของมันจนกว่าจะพบพิกเซลที่เป็นเส้นขอบ ใน pseudo-C ++: int start = 0; for(int i=0; i<amount_of_pixels; ++i) { if(pixels[i] == border) { start = i; break; } } เมื่อพบสิ่งใดสิ่งหนึ่งมันจะเริ่มต้นอัลกอริธึมกำลังเดินยกกำลังสองและค้นหารูปร่างของวัตถุที่เป็นของพิกเซล สมมติว่าฉันมีสิ่งนี้: ที่ทุกอย่างยกเว้นสีขาวเป็นเส้นขอบ และได้พบคะแนนรูปร่างของหยดแรก: สำหรับอัลกอริทึมทั่วไปมันจบแล้ว พบรูปร่างและทำงานของมันเสร็จแล้ว ฉันจะไปยังสอง blobs ต่อไปเพื่อหารูปทรงได้อย่างไร
9 2d 

1
การแสดงระดับ / โครงสร้างข้อมูลที่เหมาะสมสำหรับเกมแพลต 2D จากเกม?
ฉันกำลังจะเขียนโปรแกรม Mario ใน Java ฉันกำลังคิดเกี่ยวกับการเป็นตัวแทน 2 ครั้ง / โครงสร้างข้อมูลสำหรับระดับ แต่ฉันไม่แน่ใจว่าควรเลือกแบบใด: อาร์เรย์จำนวนเต็ม 2D ควอดทรีเพื่อแบ่งระดับเป็นชิ้น ๆ อะไรคือข้อดีและข้อเสีย?

2
สร้าง 2D Platformer ใน C ++ / SDL กำลังมองหาบทเรียน / ตัวอย่าง / ทรัพยากร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว ฉันมีประสบการณ์มากมายเกี่ยวกับ C ++ แต่ฉันไม่มีประสบการณ์กับการเขียนโปรแกรมเกม ฤดูร้อนนี้ฉันวางแผนที่จะสร้าง platformer 2D ตั้งแต่เริ่มต้นโดยใช้ C ++ / SDL สำหรับประสบการณ์การเรียนรู้ ฉันกำลังมองหาแหล่งข้อมูลให้ได้มากที่สุดเพื่อช่วยในการเริ่มต้นใช้งาน รหัสที่มาที่ดีบทเรียนอะไร หนึ่งในบทเรียนที่ดีที่สุดที่ฉันได้พบเป็นกระโดดไม่ได้ใช้งาน 'n' เรียกใช้บทเรียน dev โดยสายฟลอเรียนฮัฟสกี บทเรียนอื่น ๆ ที่คล้ายกัน?
9 c++  2d  sdl  platformer 

2
การทดสอบจุดตัดขอบกล่องวัตถุ 2 มิติชิดขอบ
ฉันมีสองกล่องขอบเขตวัตถุจัดชิด (เช่นไม่จัดแนวแกนพวกเขาหมุนด้วยวัตถุ) ฉันต้องการทราบว่ากล่องที่วางวัตถุสองกล่องซ้อนทับกันหรือไม่ ( แก้ไข: หมายเหตุ - ฉันกำลังใช้การทดสอบกล่องที่มีขอบเป็นแนวแกนเพื่อกำจัดวัตถุที่อยู่ไกลออกไปอย่างรวดเร็วดังนั้นมันจึงไม่สำคัญว่ารูทีนรูปสี่เหลี่ยมจะช้ากว่าเล็กน้อย ) กล่องของฉันถูกจัดเก็บเป็นสี่ x, y คะแนน ฉันค้นหาคำตอบแล้ว แต่ฉันไม่เข้าใจชื่อตัวแปรและอัลกอริทึมในตัวอย่างเพื่อนำไปใช้กับกรณีเฉพาะของฉัน มีใครช่วยแสดงให้ฉันเห็นว่าจะทำอย่างไรในวิธีที่ชัดเจนและเรียบง่าย? ขอบคุณ (ภาษานั้นไม่สำคัญรหัสหลอกแบบ C คือ OK)

4
“ การควบคุมเวลา” ในแพลตฟอร์ม 2d
ฉันกำลังสร้าง platformer 2d ที่ผู้เล่นสามารถกดปุ่มและเริ่มระดับใหม่เฉพาะอักขระก่อนหน้าของพวกเขาเท่านั้นที่จะทำงานในระดับเดียวกันได้เช่นเดียวกับที่พวกเขากำลังย้อนเวลากลับไป ฉันรู้ว่าเกมอื่น ๆ เคยทำมาก่อนและวิธีที่ฉันคิดว่าจะทำคือการทำให้ตัวละครในเกมมีชุดของการกระทำ (Idle, Jumping, Walking Left เป็นต้น) จากนั้นตรวจจับการเปลี่ยนแปลงในการกระทำเหล่านั้น รายการพร้อมกับเวลาเล่นเกม ดังนั้นเมื่อฉันต้องการให้ตัวละครวิ่งเลเวลอีกครั้งด้วยตัวของมันเองฉันสามารถผ่านรายการที่เปลี่ยนแปลงการกระทำของมันในเวลาที่เหมาะสม นี่เป็นวิธีที่ดีที่สุดที่จะทำ? ไม่มีใครมีประสบการณ์ในการนี้หรือไม่? ขอบคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.