การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

2
การสอดแทรกระหว่างสองสถานะเครือข่าย
ฉันมีเอนทิตีจำนวนมากในฝั่งไคลเอ็นต์ที่ถูกจำลอง (ความเร็วของพวกเขาถูกเพิ่มลงในตำแหน่งของพวกเขาตามเฟรมต่อเฟรม) และฉันปล่อยให้พวกเขาตายนับเอง พวกเขาส่งการอัปเดตเกี่ยวกับที่ที่พวกเขาเห็นครั้งสุดท้ายและการเปลี่ยนแปลงความเร็วของพวกเขา มันใช้งานได้ดีและผู้เล่นคนอื่นเห็นงานนี้พบ อย่างไรก็ตามหลังจากที่ในขณะที่ผู้เล่นเหล่านี้เริ่ม desync หลังจากเวลา นี่เป็นเพราะเวลาแฝง ฉันต้องการทราบวิธีแก้ไขปัญหาระหว่างรัฐดังนั้นพวกเขาจึงอยู่ในตำแหน่งที่ถูกต้อง ฉันรู้ว่าผู้เล่นคนใดถูกมองเห็นเมื่อเร็ว ๆ นี้และความเร็วปัจจุบันของพวกเขา แต่การสอดแทรกไปยังสถานะที่เห็นล่าสุดทำให้ผู้เล่นเลื่อนไปข้างหลัง - ฉันไม่สามารถใช้ความเร็วเลยสำหรับลูกค้าคนอื่น ๆ และเพียง 'lerp' พวกเขาไปในทิศทางที่เหมาะสม แต่ฉันรู้สึกว่าสิ่งนี้จะทำให้เกิดการเคลื่อนไหวที่ขรุขระ ทางเลือกคืออะไร?

6
เรียกใช้เกม XNA โดยไม่มีกราฟิก
หากยังสงสัยว่าจะมีเกม XNA อยู่หรือไม่โดยไม่แสดงผลใด ๆ ฉันมีเกมที่ใช้งานได้ซึ่งทำงานในการติดตั้งเซิร์ฟเวอร์ของลูกค้าโดยที่ผู้เล่นหนึ่งคนเป็นโฮสต์และคนอื่น ๆ สามารถเชื่อมต่อกับเกมของเขาได้ ตอนนี้ฉันต้องการที่จะเรียกใช้เกมเป็นโฮสต์บนเซิร์ฟเวอร์ที่ถูกถอดรหัสโดยไม่มีการ์ดกราฟิกโดยทั่วไปฉันไม่ต้องการเรียกใช้ตรรกะ Draw () เลย ฉันต้องผ่านทั้งเกมจริงๆและลบการอ้างอิงทั้งหมดไปยัง XNA หรือไม่? ผู้คนทำสิ่งนี้อย่างไร แก้ไข : เหตุผลที่ฉันต้องการทำเช่นนี้เพราะฉันมีการติดตั้งเซิร์ฟเวอร์ลูกค้าที่ใช้งานได้ในเกมและฉันไม่ต้องการสร้างโปรแกรมเซิร์ฟเวอร์ "หัวขาด" แยกต่างหาก
11 xna  xna-4.0 

1
วิธีการรับแสงที่เปลี่ยนสีกลางทาง?
ฉันคิดถึงการสร้างแหล่งกำเนิดแสงและมีหน้าต่างสี ตอนนี้หน้าต่างนั้นกึ่งโปร่งใส ฉันจะทำให้มันเป็นเช่นไรเมื่อแสง (พูด, สีขาวบริสุทธิ์) ชนแก้วและผ่านไปเรื่อย ๆ แต่เปลี่ยนสีเป็นสีเดียวกับแก้วที่มันผ่านไป? ฉันรู้ว่าเอฟเฟกต์ที่อธิบายไว้ที่นี่สามารถแกล้งด้วยการใช้ไฟบริเวณด้านข้าง "สี" ของหน้าต่าง แต่ถ้าฉันต้องการมีแสงสีขาวจุดเดียว
11 opengl  lighting  color 

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

1
สร้างเอฟเฟกต์คลื่นไซด์ 2 มิติจากเกม Worms
ฉันพยายามสร้างคลื่น / ผลกระทบน้ำจาก Worms ใหม่ (ดูที่นี่http://youtu.be/S6lrRqst9Z4?t=31s ) จากสิ่งที่ฉันเข้าใจว่าไม่ใช่สไปรท์จริงๆมันสร้างขึ้นโดยกระบวนการเช่นคลื่นบาป มีใครสร้างบางอย่างเช่นนี้มาก่อนหรือไม่ หรือความคิดใดที่ฉันจะไปเกี่ยวกับเรื่องนี้?

4
ฉันจะใช้หลายตาข่ายต่อเอนทิตีได้อย่างไรโดยไม่แยกส่วนประกอบหนึ่งประเภทเดียวต่อเอนทิตี
เราเพิ่งเปลี่ยนจากเอ็นจิ้นเกมตามลำดับชั้นเป็นเอ็นจิ้นเกมตามองค์ประกอบ ปัญหาของฉันคือเมื่อฉันโหลดแบบจำลองที่มีลำดับชั้นของตาข่ายและวิธีที่ฉันเข้าใจคือเอนทิตีในระบบที่ใช้องค์ประกอบไม่สามารถมีองค์ประกอบหลายประเภทเดียวกัน แต่ฉันต้องการ "meshComponent" สำหรับแต่ละ ตาข่ายในแบบจำลอง ดังนั้นฉันจะแก้ไขปัญหานี้ได้อย่างไร ในเว็บไซต์นี้พวกเขาใช้เอ็นจิ้นเกมแบบอิงคอมโพเนนต์: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/

2
ฉันจะทำให้ตัวละครเดินบนกำแพงที่ไม่เรียบใน platformer 2D ได้อย่างไร
ฉันต้องการมีตัวละครที่เล่นได้ซึ่งสามารถ "เดิน" บนพื้นผิวอินทรีย์ได้ทุกมุมรวมถึงด้านข้างและกลับหัว โดยระดับ "อินทรีย์" ที่มีคุณสมบัติเอียงและโค้งแทนเส้นตรงที่มุม 90 องศา ฉันกำลังทำงานใน AS3 (ประสบการณ์มือสมัครเล่นระดับปานกลาง) และใช้ Nape (มือใหม่มาก) สำหรับฟิสิกส์พื้นฐานที่ใช้แรงโน้มถ่วงซึ่งช่างเดินนี้จะเป็นข้อยกเว้นที่ชัดเจน มีวิธีการในการทำช่างเดินประเภทนี้หรืออาจใช้ข้อ จำกัด ของต้นคอ หรือจะเป็นการดีที่สุดที่จะสร้าง "เส้นทาง" การเดินที่ชัดเจนตามแนวพื้นผิวระดับและใช้เพื่อ จำกัด การเคลื่อนไหวของการเดิน?

1
ทำไม OnCollisionEnter ของ Unity ถึงไม่ให้ค่ามาตรฐานกับฉันและวิธีที่เชื่อถือได้ที่สุดในการรับมันคืออะไร
Unity's on collision event ให้การชนวัตถุที่ให้ข้อมูลเกี่ยวกับการชนที่เกิดขึ้นกับคุณ (รวมถึงรายการContactPointsพร้อม hit normals) แต่สิ่งที่คุณไม่ได้รับคือพื้นผิวมาตรฐานสำหรับคอลไลเดอร์ที่คุณยิง นี่คือภาพหน้าจอเพื่ออธิบาย เส้นสีแดงจากและสายสีฟ้าจากContactPoint.normalRaycastHit.normal นี่เป็นตัวอย่างของ Unity ที่ซ่อนข้อมูลเพื่อให้ API ที่ง่ายขึ้นหรือไม่ หรือเทคนิคการตรวจจับการชนกันแบบเรียลไทม์มาตรฐาน 3 มิติไม่เพียงรวบรวมข้อมูลนี้หรือไม่ และในส่วนที่สองของคำถามอะไรคือวิธีที่แน่นอนและค่อนข้างมีประสิทธิภาพในการทำให้พื้นผิวเป็นปกติสำหรับการชน ฉันรู้ว่าการฉายรังสีให้ผิวหน้าของคุณเป็นปกติ แต่ดูเหมือนว่าฉันจำเป็นต้องทำ raycast หลายครั้งเพื่อทำสิ่งนี้ให้สำเร็จในทุกสถานการณ์ (อาจจะเป็นจุดติดต่อ / การรวมแบบปกติคิดถึงการชนในการโยนครั้งแรกหรือคุณอาจต้องเฉลี่ย บรรทัดฐานของจุดติดต่อเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด) วิธีการปัจจุบันของฉัน: สำรองข้อมูลCollision.contacts[0].pointตามปกติของมันตี Raycast ตามปกติเมื่อตะกี้สำหรับfloat.MaxValueบนCollision.collider หากล้มเหลวให้ทำซ้ำขั้นตอนที่ 1 และ 2 โดยไม่ใช้วิธีปกติ หากล้มเหลวให้ลองขั้นตอนที่ 1 ถึง 3 ด้วย Collision.contacts[1] ทำซ้ำ 4 จนสำเร็จหรือจนกว่าจะหมดคะแนนการติดต่อ Vector3.zeroให้ขึ้นผลตอบแทน นี่ดูเหมือนจะจับทุกอย่าง แต่สิ่งที่ทำให้ฉันรู้สึกไม่สบายใจและฉันไม่แน่ใจว่าจะทดสอบว่าวิธีนี้ใช้ได้ผลในกรณีที่เพียงพอ มีวิธีที่ดีกว่า? …

1
รูปแบบสำหรับการดำเนินการของเกม
มีรูปแบบที่ยอมรับโดยทั่วไปสำหรับการดำเนินการต่าง ๆ ภายในเกมหรือไม่ วิธีที่ผู้เล่นสามารถทำการกระทำและ AI อาจทำการกระทำเช่นการย้ายการโจมตีการทำลายตนเองเป็นต้น ขณะนี้ฉันมี BaseAction ที่เป็นนามธรรมซึ่งใช้. NET generics เพื่อระบุวัตถุต่าง ๆ ที่ได้รับจากการกระทำต่าง ๆ ทั้งหมดนี้นำมาใช้ในรูปแบบที่คล้ายกับคำสั่งซึ่งแต่ละการกระทำมีความรับผิดชอบต่อตนเองและทำทุกอย่างที่จำเป็น เหตุผลของฉันในการเป็นนามธรรมคือเพื่อให้ฉันมี ActionHandler เพียงอันเดียวและ AI ก็สามารถต่อคิวการกระทำที่แตกต่างกันในการดำเนินการตาม baseAction และสาเหตุที่เป็นเรื่องทั่วไปคือการกระทำที่แตกต่างกันสามารถส่งคืนข้อมูลผลลัพธ์ที่เกี่ยวข้องกับการกระทำ (เนื่องจากการกระทำที่แตกต่างกันอาจมีผลลัพธ์ที่แตกต่างกันโดยสิ้นเชิงในเกม) พร้อมกับการกระทำทั่วไปก่อนและหลังดำเนินการ ดังนั้น ... มีวิธีที่ยอมรับมากขึ้นในการทำเช่นนี้หรือเสียงไม่เป็นไร?

4
จะเขียนโค้ด Time Stop หรือ Bullet Time ในเกมได้อย่างไร?
ฉันกำลังพัฒนา platformer RPG ผู้เล่นเดี่ยวใน XNA 4.0 ฉันต้องการเพิ่มความสามารถที่จะทำให้เวลา "หยุด" หรือช้าลงและมีเพียงตัวละครของผู้เล่นที่เคลื่อนที่ด้วยความเร็วดั้งเดิม (คล้ายกับคาถา Time Stop จากซีรี่ส์ประตู Baldur) ฉันไม่ได้มองหาการใช้งานที่แน่นอน แต่เป็นแนวคิดและรูปแบบการออกแบบทั่วไป แก้ไข: ขอบคุณทุกท่านสำหรับการป้อนข้อมูลที่ยอดเยี่ยม ฉันคิดวิธีแก้ปัญหาต่อไปนี้ขึ้นมา public void Update(GameTime gameTime) { GameTime newGameTime = new GameTime(gameTime.TotalGameTime, new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER)); gameTime = newGameTime; หรือบางสิ่งบางอย่างตามสายเหล่านี้ ด้วยวิธีนี้ฉันสามารถตั้งเวลาที่แตกต่างกันสำหรับองค์ประกอบผู้เล่นและแตกต่างกันสำหรับส่วนที่เหลือ แน่นอนว่ามันไม่เป็นสากลมากพอที่จะทำงานให้กับเกมที่เวลาการแปรปรวนเช่นนี้จะเป็นองค์ประกอบสำคัญ แต่ฉันหวังว่ามันจะทำงานได้ดีในกรณีนี้ ฉันไม่ชอบความจริงที่ว่ามันเพิ่มลูปอัปเดตหลัก แต่ก็เป็นวิธีที่ง่ายที่สุดในการติดตั้ง ฉันเดาว่าสำคัญมากเหมือนกับที่ tesselode แนะนำดังนั้นฉันจะให้เห็บสีเขียวแก่เขา :)
11 xna  time-travel 

2
การค้นหารูปร่างใน 2D Array จากนั้นปรับให้เหมาะสม
ฉันเพิ่งได้รับอนุญาตให้ใช้รูป ... ภาพด้านล่างจากเกมของฉันแสดงบล็อกมืดบางส่วนซึ่งได้รับการยอมรับว่าเป็นส่วนหนึ่งของรูปร่าง "T" ตามที่เห็นรหัสได้ทำให้บล็อกมืดลงด้วยจุดสีแดงและไม่เห็นรูปร่าง "T" ที่มีเส้นขอบสีเขียว รหัสของฉันวนซ้ำผ่าน x / y ทำเครื่องหมายบล็อกที่ใช้หมุนรูปร่างทำซ้ำเปลี่ยนสีทำซ้ำ ฉันเริ่มพยายามแก้ไขการตรวจสอบนี้ด้วยความกังวลใจมาก แนวคิดปัจจุบันคือ: วนรอบตารางและจดบันทึกรูปแบบที่เกิดขึ้นทั้งหมด (ไม่ทำเครื่องหมายบล็อกตามที่ใช้) และวางสิ่งเหล่านี้ลงในอาร์เรย์ วนซ้ำผ่านกริดอีกครั้งคราวนี้สังเกตว่าบล็อกใดถูกครอบครองโดยรูปแบบใดและด้วยเหตุใดจึงมีหลายรูปแบบ วนลูปผ่านกริดอีกครั้งคราวนี้สังเกตว่ารูปแบบใดขัดขวางรูปแบบใด รู้สึกอย่างนั้น ... ฉันจะทำยังไงดี? ฉันคิดว่าฉันจะต้อง ลองผสมผสานรูปร่างที่ขัดแย้งกันหลายแบบเริ่มต้นด้วยสิ่งกีดขวางรูปแบบส่วนใหญ่ก่อน ฉันจะเข้าใกล้คนนี้ได้อย่างไร ใช้เหตุผลที่บอกว่าฉันมี 3 รูปร่างที่ขัดแย้งกันครอบครอง 8 บล็อกและรูปร่างเป็น 4 บล็อกต่อหนึ่งดังนั้นฉันจึงสามารถมีได้สูงสุดสองรูปร่าง (ฉันยังต้องการรวมรูปร่างอื่น ๆ และอาจมีการให้คะแนนน้ำหนักซึ่งจะต้องพิจารณาเมื่อผ่านรูปร่างที่ขัดแย้งกัน แต่อาจเป็นอีกวัน) ฉันไม่คิดว่ามันเป็นปัญหาการจัดเก็บขยะ แต่ฉันไม่แน่ใจว่าจะหาอะไร หวังว่าจะทำให้รู้สึกขอบคุณสำหรับความช่วยเหลือของคุณ แก้ไขแม้จะมีความชัดเจนของคำถามทุกคนดูเหมือนจะเข้าใจใช่ ฉันต้องการค้นหารูปร่าง "T" สูงสุดภายในแต่ละสี (เพราะถ้าฉันให้คะแนนสองและคุณได้สามคุณจะรำคาญเล็กน้อย)

2
ฉันจะย้ายสไปรต์ไปในทิศทางที่หันหน้าไปได้อย่างไร
ฉันใช้ Java / Slick 2D ฉันพยายามใช้เมาส์เพื่อหมุนสไปรต์และปุ่มลูกศรเพื่อย้ายสไปรต์ ฉันสามารถทำให้เทพดาหมุนได้โดยไม่มีปัญหา แต่ฉันไม่สามารถขยับไปในทิศทางที่ควรจะเป็นได้ เมื่อฉันกด "ส่งต่อ" สไปรท์ไม่จำเป็นต้องเลื่อนไปทางเมาส์ จริงๆแล้วมันจะเคลื่อนไปทางซ้ายของหน้าจอจริงๆเท่านั้น ฉันแน่ใจว่าต้องมีรหัสมาตรฐานสำหรับเกมนี้เนื่องจากเกมหลายเกมใช้รูปแบบการเคลื่อนไหวนี้ ทุกคนสามารถช่วยฉันด้วยสิ่งที่ตรีโกณมิติควรจะเป็น ขอบคุณ แก้ไข: นี่คือรหัสการหมุน (ซึ่งทำอย่างอื่นแปลก ๆ : /programming/12610320/why-is-my-im-image-rotating-off-center ) int mX = Mouse.getX(); int mY = HEIGHT - Mouse.getY(); int pX = sprite.x; int pY = sprite.y; int tempY, tempX; double mAng, pAng = sprite.angle; double angRotate=0; …

5
คุณต้องการเซิร์ฟเวอร์ราคาแพงและโฮสต์แฟนซีเพื่อสร้างเกมแบบผู้เล่นหลายคนหรือไม่?
ฉันทำงานเกมสวมบทบาทเสร็จแล้วและมันสนุกมากที่จะทำให้มันเป็นแบบผู้เล่นหลายคน SFML มีคุณสมบัติเครือข่ายฉันคิดว่ามันเป็นไปได้ แต่แล้วอีกครั้งไม่เคยมีในชีวิตของฉันฉันได้ลองบางสิ่งพื้นฐานเกี่ยวกับระบบเครือข่ายในความเป็นจริงความรู้ของฉันมันมี จำกัด มาก สิ่งที่ต้องทำเพื่อให้ได้ทรัพยากรเกมที่มีผู้เล่นหลายคนเป็นอย่างไร ฉันไม่ได้พูดถึง MMO เหมือนเกมประเภท co-op ฉันต้องการเงินจำนวนมากสำหรับการโฮสต์และเซิร์ฟเวอร์และหลายสิ่งหลายอย่างเพื่อสร้างหรือไม่?
11 c++  multiplayer  sfml 

3
วิธีการทำ Geometry Wars แรงโน้มถ่วงมีผลดี
ฉันไม่ได้พูดเกี่ยวกับตารางพื้นหลังที่นี่ฉันกำลังพูดถึงอนุภาคที่หมุนวนรอบ Gravity Wells! ฉันชอบเอฟเฟกต์มาตลอดและตัดสินใจว่าจะเป็นการทดลองที่สนุกที่จะทำซ้ำฉันรู้ว่า GW ใช้กฎของฮุคไปทั่วทุกที่ แต่ฉันไม่คิดว่าเอฟเฟ็กต์อนุภาคต่อดีทำโดยใช้สปริง ดูเหมือนว่าฟังก์ชั่นระยะทางกำลังสอง นี่คือวิดีโอสาธิตผล: http://www.youtube.com/watch?v=YgJe0YI18Fg ฉันสามารถใช้เอฟเฟกต์สปริงหรือแรงโน้มถ่วงกับอนุภาคบางชนิดได้ดีนั่นเป็นเรื่องง่าย แต่ฉันดูเหมือนจะไม่ได้รับผลกระทบที่ดูเหมือนกับผลของ GWs เมื่อฉันดูเอฟเฟกต์ในเกมดูเหมือนว่าอนุภาคจะถูกปล่อยออกมาเป็นจำนวนมากจากหลุมของตัวเองพวกมันจะหมุนวนรอบจุดศูนย์กลางของหลุมและในที่สุดก็ถูกเหวี่ยงออกไปด้านนอกถอยกลับไปยังบ่อน้ำ ฉันจะทำให้อนุภาคเกลียวออกมาด้านนอกได้อย่างไรเมื่อวางไข่? ฉันจะเก็บชิ้นส่วนของอนุภาคไว้ด้วยกันได้อย่างไรเมื่ออยู่ใกล้กับบ่อน้ำ แต่กระจายตัวออกจากกันเมื่อมันถูกเหวี่ยงออกไปด้านนอก ฉันจะเก็บอนุภาคเหล่านี้ไว้บนบ่อน้ำได้อย่างไร แก้ไข: http://www.youtube.com/watch?v=1eEPl8kOXN8 <- วิดีโอ https://dl.dropbox.com/u/49283213/gw.gif <- GIF ของเส้นทางอนุภาค ฉันปิดการสุ่มภายใน GW เพื่อทำให้เอฟเฟกต์ของอนุภาคดูได้ง่ายขึ้นนี่คือวิดีโอนาทีที่คุณสามารถเห็นท่อระบายน้ำสีฟ้า - เขียวส่งอนุภาคออกมา อนุภาคสีแดงมาจากการระเบิดที่ปกติจะปรากฏทั่วสถานที่ ข้อสังเกตบางอย่างที่ฉันทำจากวิดีโอ: อนุภาคจะถูกปล่อยออกมาจากศูนย์กลาง (หรือใกล้ศูนย์กลาง) ของท่อระบายน้ำ อนุภาคทั้งหมดถูกบังคับให้เคลื่อนที่เป็นทวนเข็มนาฬิการอบ ๆ ศูนย์กลางดังนั้นการเคลื่อนที่ของวงสัมผัสบางประเภทจะถูกนำไปใช้คุณสามารถเห็นสิ่งนี้ได้ง่ายเมื่ออนุภาคระเบิดสีแดงเข้าใกล้ท่อระบายน้ำ

2
วิธี จำกัด การเคลื่อนไหว click'n'drag ไปยังพื้นที่ใด
ฉันขอโทษสำหรับชื่อทั่วไปค่อนข้าง ฉันมีเงื่อนงำไม่มากเกี่ยวกับวิธีการทำสิ่งที่ฉันพยายามทำซึ่งทำให้ยากยิ่งขึ้นแม้จะค้นคว้าวิธีแก้ปัญหาที่เป็นไปได้ ฉันพยายามใช้เครื่องหมายบอกทาง (อาจจะมีชื่อที่เหมาะสมที่สุดสำหรับมัน แต่นี่คือสิ่งที่ดีที่สุดที่ฉันสามารถหาได้) ด้านหน้าของผู้เล่นจะมีเครื่องหมายบอกทางซึ่งจะเป็นตัวกำหนดว่าผู้เล่นจะเคลื่อนที่อย่างไรเมื่อเขาวางแผนที่จะเสร็จ ผู้เล่นสามารถคลิกและลากเครื่องหมายไปยังตำแหน่งที่พวกเขาเลือก แต่เครื่องหมายสามารถเคลื่อนย้ายภายในพื้นที่ทำงานที่กำหนดไว้ (บิตสีเทา) ดังนั้นตอนนี้ฉันติดอยู่กับปัญหาที่สอง: ก่อนอื่นฉันจะกำหนดพื้นที่ทำงานได้อย่างไร ฉันสามารถจินตนาการได้ว่าเวกเตอร์สองตัวที่มีผู้เล่นเป็นจุดเริ่มต้นในการสร้างมุมที่ใช้งานได้และบางทีอาร์คทั้งสองนั้นอาจมาจากวงกลมที่มีศูนย์กลางอยู่ที่ผู้เล่นอยู่ แต่ฉันไม่รู้ว่าจะเอาสิ่งนี้ทั้งหมด ด้วยกัน. และประการที่สองหลังจากที่ฉันได้กำหนดพื้นที่ที่สามารถวางเครื่องหมายได้ฉันจะบังคับได้อย่างไรว่าเครื่องหมายควรอยู่ในพื้นที่นั้นเท่านั้น ตัวอย่างเช่นหากผู้เล่นคลิกและลากเครื่องหมายไปรอบ ๆ มันอาจเคลื่อนที่ได้อย่างอิสระภายในพื้นที่ทำงาน แต่ต้องไม่ออกจากขอบเขตของพื้นที่ ตัวอย่างเช่นหากผู้เล่นเริ่มลากเครื่องหมายขึ้นด้านบนมันจะเลื่อนขึ้นไปจนถึงจุดสิ้นสุดของพื้นที่ทำงาน (แผนภาพแรกด้านล่าง) แต่ถ้าหลังจากผู้เล่นเริ่มลากไปด้านข้างเครื่องหมายจะต้องติดตามการลากในขณะที่ยังคงอยู่ ภายในพื้นที่ (แผนภาพที่สองด้านล่าง) ฉันหวังว่ามันจะไม่ทำให้สับสนทั้งหมด ขอบคุณเพื่อน. แก้ไข:ในกรณีที่สร้างความแตกต่างฉันใช้ C ++ กับ Marmalade SDK

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