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

คำศัพท์ง่ายๆสำหรับ "การแปล" การเปลี่ยนตำแหน่งของเอนทิตีบนเส้นทางของการเปลี่ยนจากจุด A เป็นจุด B

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

5
กำลังมองหาเทคนิคที่ดีสำหรับการเคลื่อนไหวของตัวละครในเกมแฮ็ค & สแลช
ฉันกำลังสร้างเกมแฮ็ค & สแลชและฉันต้องการให้ตัวละครของฉันเคลื่อนไหวอย่างเช่น Torchlight, Diablo เป็นต้นปัจจุบันฉันสร้างชุดของโหนดสำหรับพื้นที่ที่สามารถเดินได้ทั้งหมดของพื้น เมื่อฉันคลิกที่ผู้เล่นที่ไหนสักแห่งไปที่นั่นผ่านเส้นทางของการสอดแทรกโหนด มันดูไม่เป็นธรรมชาติมาก ผู้เล่นเคลื่อนไหวเหมือนหุ่นยนต์ ศัตรูใช้ระบบโหนดนี้เพื่อการเคลื่อนไหวและแบ่งปันปัญหาเดียวกัน แต่ฉันมีปัญหาอีกหนึ่งข้อกับพวกเขา เมื่อศัตรูตรวจพบผู้เล่นพวกเขาจะไปหาเขาโดยเส้นทางที่สั้นที่สุด บางครั้งพวกเขาใช้เส้นทางเดียวกันและต่อแถวเข้ากับผู้เล่นแทนที่จะล้อมรอบเขา ฉันไม่รู้วิธีที่จะทำให้ศัตรูเลือกเส้นทางที่แตกต่างและล้อมรอบผู้เล่น คุณรู้หรือไม่ว่าฉันจะแก้ปัญหานี้ได้อย่างไร? บางทีฉันควรใช้วิธีการที่แตกต่างกันสำหรับการเคลื่อนไหวของตัวละคร? เทคนิคปัจจุบันของฉัน: ภาพหน้าจอของ Torchlight: --- UPDATE --- ฉันต้องการทราบวิธีจัดการกับสถานการณ์เหล่านี้: สถานการณ์ที่ 1 ฉันมีสิ่งกีดขวางแบบไดนามิก / แบบคงที่ในแบบของฉัน สถานการณ์ที่ 2 ศัตรูมีเส้นทางแซมไปยังผู้เล่น (เข้าคิวเพื่อต่อสู้กับเรา)
51 ai  rpg  movement 

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

4
การทำนายฝั่งไคลเอ็นต์ทำงานอย่างไร
ฉันได้อ่าน Valve + Gafferon และอีกหลายร้อยหน้าจาก Google แต่ด้วยเหตุผลใดก็ตามที่ฉันไม่สามารถคาดเดาลูกค้าได้ เพื่อความเข้าใจของฉันปัญหาพื้นฐานคือ: ลูกค้า A ส่งอินพุตที่ T0 เซิร์ฟเวอร์รับอินพุตที่ T1 ลูกค้าทั้งหมดได้รับการเปลี่ยนแปลงเวลา T2 T2อย่างไรก็ตามเมื่อใช้การคาดการณ์ของลูกค้าลูกค้า A อยู่ในตำแหน่งที่เหมาะสมT4แล้ว คุณจะมั่นใจได้อย่างไรว่าลูกค้า A เมื่อคาดการณ์ว่าเซิร์ฟเวอร์จะยอมรับคำขอการเคลื่อนไหวจะไม่นำหน้าเซิร์ฟเวอร์ เห็นได้ชัดว่าทุกครั้งที่พวกเขาอยู่ข้างหน้าผลนี้ในการหักกลับไปที่เซิร์ฟเวอร์ครั้งล่าสุดเห็นพวกเขา ด้วยการแก้ไขทั้งหมดที่ฉันได้ลองสิ่งนี้ยังคงเห็นได้ชัดเจนเมื่อคุณหยุดเพราะเซิร์ฟเวอร์หยุดตามคุณ

6
ใครคำนวณ AI ใน MMO ได้บ้าง
ฉันกำลังสร้าง MMO และต้องการเพิ่ม NPC สิ่งที่ฉันไม่รู้การออกแบบขั้นพื้นฐาน การคำนวณลูกค้าหรือเซิร์ฟเวอร์คืออะไร? ฉันจะเข้าใจเซิร์ฟเวอร์ที่คำนวณเหตุการณ์และปฏิกิริยาต่าง ๆ แต่เมื่อมันลงไปที่การบอกตำแหน่งและตำแหน่งและการเคลื่อนไหวของผู้เล่น ใครเป็นผู้คำนวณ AI เซิร์ฟเวอร์หรือลูกค้า ฉันนึกภาพออกไม่ได้ว่าเซิร์ฟเวอร์กำลังคำนวณการหาเส้นทางตำแหน่งการเคลื่อนไหวและอื่น ๆ ได้โปรดฉันต้องการความช่วยเหลือในการทำความเข้าใจนี้ขอบคุณสิ่งที่จะช่วย
30 ai  mmo  server  movement  npc 

4
ฉันจะย้ายวัตถุในเส้นทาง“ ไม่มีที่สิ้นสุด” หรือ“ รูปที่ 8” ได้อย่างไร
เมื่อฉันต้องการย้ายวัตถุไปรอบ ๆ จุดฉันทำ: point.x *= cosf(timer.timeElapsed); point.y *= sinf(timer.timeElapsed); วิธีทำให้จุดเคลื่อนที่บนวิถีวิถีแปดหรืออนันต์

4
การเคลื่อนไหวสวมบทบาทจากบนลงล่างพร้อมการแก้ไข?
ฉันหวังว่าเราจะได้เล่น Zelda ทั้งหมด: ลิงค์ไปสู่อดีตโปรดแก้ไขให้ฉันถ้าฉันผิด แต่ฉันต้องการเลียนแบบการเคลื่อนไหวตัวละคร 2D จากบนลงล่างด้วยการแก้ไข มันทำมาแล้วในเกมอื่น แต่ฉันคิดว่าการอ้างอิงนี้จะง่ายที่สุดในการเชื่อมโยง โดยเฉพาะอย่างยิ่งการเคลื่อนไหวและการแก้ไขที่ฉันพูดถึงคือ: การเคลื่อนไหวลอยตัวนั้นไม่ได้ จำกัด เฉพาะการเคลื่อนไหวแบบเรียงต่อกันเช่นโปเกมอนและเกมอื่น ๆ ที่การแตะหนึ่งครั้งของแผ่นเคลื่อนไหวจะเลื่อนคุณหนึ่งตารางในทิศทางที่สำคัญ การเคลื่อนไหวแบบลอยตัวนี้ควรจะสามารถทำให้เกิดการเคลื่อนไหวในแนวทแยง หากคุณกำลังเดินไปทางทิศตะวันตกและคุณมาที่กำแพงที่มีแนวทแยงในแบบตะวันออกเฉียงเหนือ / ตะวันตกเฉียงใต้คุณจะได้รับการแก้ไขในการเคลื่อนไหวทางตะวันตกเฉียงใต้แม้ว่าคุณจะยังคงถือ (ตะวันตก) บนตัวควบคุม การดำเนินการนี้ควรใช้สำหรับการแก้ไขเส้นทแยงมุมทั้งสองในทั้งสองทิศทาง หากคุณมีพิกเซลไม่กี่ก้าวจากการเดินเข้าไปในประตูหรือโถงทางเดินคุณจะได้รับการแก้ไขให้เดินผ่านโถงทางเดินหรือลงไปตามทางเดินนั่นคือการชนเข้ามุมทำให้คุณถูกผลักเข้าไปในห้องโถง / ประตู ฉันตามล่าหาวิธีที่มีประสิทธิภาพเพื่อบรรลุเป้าหมายนี้และไม่มีโชค เพื่อความชัดเจนฉันกำลังพูดถึงการเคลื่อนไหวของตัวละครมนุษย์ไม่ใช่การเคลื่อนไหวของ NPC มีทรัพยากรของพวกเขาในการเคลื่อนไหวประเภทนี้หรือไม่? สมการหรืออัลกอริทึมอธิบายบนวิกิหรืออะไร? ฉันใช้ XNA Framework มีอะไรในนั้นที่จะช่วยได้หรือไม่
27 xna  2d  rpg  movement 

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

3
ค่าความเร็วที่ไม่ใช่จำนวนเต็ม - มีวิธีที่สะอาดกว่านี้ไหม
บ่อยครั้งที่ฉันต้องการใช้ค่าความเร็วเช่น 2.5 สำหรับการย้ายตัวละครของฉันในเกมที่ใช้พิกเซล การตรวจจับการชนโดยทั่วไปจะทำได้ยากขึ้นหากฉันทำเช่นนั้น ดังนั้นฉันเลยทำอะไรแบบนี้: moveX(2); if (ticks % 2 == 0) { // or if (moveTime % 2 == 0) moveX(1); } ฉันประจบประแจงอยู่ข้างในทุกครั้งที่ฉันต้องเขียนมันมีวิธีที่สะอาดกว่าในการย้ายตัวละครที่มีค่าความเร็วที่ไม่ใช่จำนวนเต็มหรือฉันจะยังคงติดอยู่กับเรื่องนี้ตลอดไปหรือไม่?

3
ย้ายจาก A (x, y) ไปยัง B (x1, y1) ด้วยความเร็วคงที่หรือไม่
ขณะนี้ฉันมีสิ่งที่ชอบ: float deltaX = point0.getX() - point1.getX(); float deltaY = point0.getY() - point1.getY(); และทุกๆ 0.01 วินาทีฉันจะรีเฟรชตำแหน่งวัตถุของฉันเช่นนี้: object.setPosition(object.getX()-deltaX/100,object.getY()-deltaY/100); ดังนั้นสิ่งนี้จะย้ายวัตถุของฉันจากจุด 0 ถึงจุด 1 ใน 1 วินาที สิ่งที่ฉันต้องการคือมี 2 คะแนนเพื่อให้สามารถเคลื่อนย้ายวัตถุจากจุด 0 หันหน้าไปทาง (ตามทิศทาง) จุด 1 ด้วยความเร็วคงที่ ดังนั้นเมื่อฉันมีจุดใกล้กับจุดเริ่มต้นของฉันวัตถุจะเคลื่อนที่ไปทางนั้นด้วยความเร็วเท่ากันมันจะเกิดอะไรขึ้นถ้าฉันมีจุดที่ไกลออกไป ข้อเสนอแนะใด ๆ ที่ชื่นชม ขอบคุณ

6
วิธีการสร้าง "ปริมาณการใช้ AI"?
โครงการที่ฉันกำลังทำอยู่ตอนนี้มี "การจราจร" จำนวนมากในแง่ของรถยนต์ที่กำลังแล่นไปตามถนน, เครื่องบินกำลังเคลื่อนย้ายผ้ากันเปื้อนเป็นต้น ณ ตอนนี้พา ธ ที่พร้อมใช้งานจะถูกคำนวณล่วงหน้าดังนั้นโหนดจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับการข้ามที่ตัวเองเชื่อมต่อกันด้วยขอบ เมื่อตัวละคร / เอเจนต์เกิดขึ้นในโลกมันเริ่มต้นที่บางโหนดและค้นหาเส้นทางไปยังโหนดเป้าหมายโดยใช้อัลกอริธึม A * ตัวแทนตามเส้นทางและในที่สุดก็มาถึงปลายทาง ไม่มีปัญหาจนถึงตอนนี้ ตอนนี้ฉันต้องเปิดใช้งานตัวแทนเพื่อหลีกเลี่ยงการชนและจัดการกับสถานการณ์การจราจรที่ซับซ้อน ตั้งแต่ฉันยังใหม่กับสนามของ AI ฉันค้นหาบทความ / บทความเกี่ยวกับพฤติกรรมการบังคับเลี้ยว แต่พบว่าพวกเขาอยู่ในระดับต่ำเกินไป ปัญหาของฉันประกอบด้วยการหลีกเลี่ยงการชนที่เกิดขึ้นจริงน้อยกว่า (ซึ่งค่อนข้างง่ายในกรณีนี้เนื่องจากตัวแทนปฏิบัติตามเส้นทางที่กำหนดอย่างเคร่งครัด) แต่ในสถานการณ์เช่นตัวแทนหนึ่งออกจากจุดจบในขณะที่อีกคนหนึ่งต้องการป้อนสิ่งเดียวกัน หรือตัวแทนสองคนพบกันที่คอขวดซึ่งอนุญาตให้ตัวแทนหนึ่งรายผ่านแต่ละครั้ง แต่ทั้งคู่ต้องผ่าน (ตามเส้นทางที่ดีที่สุดที่พบก่อนหน้านี้) และพวกเขาต้องการหาวิธีที่จะให้อีกฝ่ายหนึ่งผ่านไปก่อน ประเด็นหลักของปัญหาคือการคาดคะเนการเคลื่อนไหวของการจราจรเพื่อหลีกเลี่ยงการล็อกที่ตายแล้ว ยากที่จะอธิบาย แต่ฉันเดาว่าคุณเข้าใจในสิ่งที่ฉันหมายถึง คุณมีคำแนะนำใด ๆ สำหรับฉันที่จะเริ่มมองหา? เอกสารโครงการตัวอย่างหรือสิ่งที่คล้ายกันที่สามารถเริ่มต้นได้บ้าง ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณ!
21 ai  movement 

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

2
โปรโตคอลเกม RTS
ฉันคิดเกี่ยวกับเกม RTS สำหรับผู้เล่นหลายคน ส่วนที่ฉันไม่สามารถหลีกเลี่ยงได้คือการซิงค์การเคลื่อนที่ของยูนิต ถ้าฉันย้ายยูนิต A ไปที่จุด XY ฉันต้องสื่อสารกลับไปที่เซิร์ฟเวอร์ที่ถ่ายทอดไปยังไคลเอนต์อื่น ฉันอยากรู้ว่าการสื่อสารจะเป็นอย่างไร คุณจะสื่อสารกับเซิร์ฟเวอร์ที่ฉันย้ายยูนิต A ไปยัง XY จาก JZ หรือไม่? บางทีคุณอาจต้องการสื่อสาร coord การเคลื่อนไหวโดย coord แทน? วิธีการที่มีประสิทธิภาพที่สุดในการสื่อสารการเคลื่อนไหวของหน่วยจากลูกค้ารายหนึ่งไปยังอีกคืออะไร? แก้ไข นี่คือคำถามที่โพสต์ใหม่จาก StackOverflow ฉันพบว่าไซต์นี้น่าจะเป็นสถานที่ที่ดีกว่าสำหรับคำถาม หนึ่งในคำตอบที่ดีกว่าจากโพสต์นั้น: ฉันคิดว่าคุณตั้งใจจะใช้กระบวนทัศน์การเชื่อมต่อไคลเอนต์ - เซิร์ฟเวอร์หรือไม่? ในกรณีที่คุณไม่สามารถเชื่อถือลูกค้าเพื่อจัดการตำแหน่งจริงของหน่วยคุณต้องมอบหมายงานนั้นให้กับเซิร์ฟเวอร์ จากนั้นคุณจะใช้รายการคำสั่งจากลูกค้าแต่ละคนต่อหนึ่งขีดและคำนวณการเคลื่อนที่ของแต่ละหน่วยเมื่อสิ่งนี้เสร็จสมบูรณ์แล้วติ๊กถัดไปคุณจะถ่ายทอดตำแหน่งของแต่ละหน่วยที่เกี่ยวข้องกับลูกค้าแต่ละคน (ไม่ว่าจะบนแผนที่ทั้งหมดหรือ พื้นฐานต่อการดู) และเริ่มกระบวนการอีกครั้ง
18 movement  rts 

3
วิธีหลีกเลี่ยงการซ้อนความเร็วในการเคลื่อนไหวเมื่อกดปุ่มหลาย ๆ ปุ่ม?
ฉันได้เริ่มเกมใหม่ที่ไม่ต้องใช้เม้าส์ ฉันพยายามรวม 8 ทิศทาง; ขึ้น, ซ้าย, ขวา, ขึ้น - ขวาเป็นต้น อย่างไรก็ตามเมื่อฉันกดปุ่มลูกศรมากกว่าหนึ่งปุ่มความเร็วในการเคลื่อนที่จะซ้อนกัน ( http://gfycat.com/CircularBewitchedBarebirdbat ) ฉันจะต่อต้านสิ่งนี้ได้อย่างไร นี่คือส่วนที่เกี่ยวข้องของรหัสของฉัน: var speed : int = 5; function Update () { if (Input.GetKey(KeyCode.UpArrow)) { transform.Translate(Vector3.forward * speed * Time.deltaTime); } else if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightArrow)) { transform.Translate(Vector3.forward * speed * Time.deltaTime); } else if (Input.GetKey(KeyCode.UpArrow) …

1
ค้นพบบนพื้นผิวดาวเคราะห์ที่ไม่เรียบ
คำถามของฉันคืออะไรจะเป็นวิธีที่ดีที่สุดในการค้นพบบนพื้นผิวดาวเคราะห์ที่ไม่เรียบ? ข้อมูลพื้นฐาน ฉันสร้างดาวเคราะห์ขึ้นจากการแมปการเคลื่อนที่ 6 ระนาบที่คาดการณ์ไว้ ตอนแรกเครื่องบินก่อตัวเป็นลูกบาศก์ก่อนที่จะถูกฉายเป็นรูปร่างทรงกลม ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะใช้ "ใบหน้าลูกบาศก์ใบหน้ากลม" เป็นกริดและใช้อัลกอริธึม A * แบบง่าย ๆ เพื่อค้นหาเส้นทางที่ดีที่สุดที่เป็นไปได้ฉันต้องการให้นำความสูงของการกระจัดกระจายมาพิจารณาด้วย ภูเขาอื่น ๆ (ฉันคิดว่านี่จะเป็นเพียงการแก้ปัญหาด้วยอัลกอริทึม A *) ข้อพิจารณาอีกอย่างหนึ่งคือฉันได้บรรลุการเคลื่อนที่ของดาวเคราะห์โดยใช้ประโยชน์จากกลไกทางฟิสิกส์ของ Unity3d ใช้แรงโน้มถ่วงเข้าหาศูนย์กลางของดาวเคราะห์ วิธีแก้ปัญหาที่เสนอของฉันจะต้องใช้การเคลื่อนไหวของตัวแทนเพื่อควบคุมฟิสิกส์แรงโน้มถ่วงโดยอิสระหรือไม่ เพื่อช่วยให้ชัดเจนขึ้นคำถามของฉันนี่คือร่างกายดาวเคราะห์ปัจจุบันของฉัน:

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