3
ทำให้สิ่งที่ดูรวดเร็วช้า (Box2D)
ฉันกำลังทำงานกับเกมที่คุณควบคุม Trebuchet เพื่อขว้างลูกบอลให้ฝ่ายตรงข้าม มันเหมือนเกมที่เรียกว่า 'Medieval Siege' เมื่อ Trebuchet กำลังแกว่งแขนผู้เล่นต้องยึดช่วงเวลาที่ดีที่สุดเพื่อกดปุ่มและปล่อยลูกบอล จากนั้นลูกบอลจะลอยไปที่มุมสัมผัส ปัญหาของฉันในตอนนี้คือแขน trebuchet แกว่งเร็วเกินไปสำหรับผู้เล่นที่จะคว้าช่วงเวลาที่เหมาะสม ในขณะเดียวกันก็ต้องมีความเร็วอย่างนี้ไม่อย่างนั้นมันก็ไม่สามารถโยนได้ไกลพอ และมีสายเล็ก ๆ ที่เชื่อมต่อลูกบอลและแขน trebuchet ถ้าแขนแกว่งช้าเกินไปลูกบอลก็จะลอยอยู่บนเชือกเมื่อแขนขยับ ฉันแก้ปัญหาด้วยการสลับขนาดก้าวเมื่อใดก็ตามที่แขนแกว่งไปมาฉันเปลี่ยนขนาดก้าวจาก 1/60 เป็น 1/200 และเมื่อผู้เล่นปล่อยลูกบอลมันกลับไปที่ 1/60 วิธีนี้ใช้งานได้ดียกเว้นเกมของฉันมีไว้สำหรับผู้เล่นหลายคนที่มีเครือข่าย ดังนั้นขั้นตอนการเปลี่ยนอาจทำให้เกิดปัญหา อีกวิธีที่ฉันคิดได้คืออนุญาตให้มันแกว่งช้า แต่เมื่อผู้เล่นปล่อยลูกบอลฉันจะเพิ่มความเร็วลงบนลูกบอลในขณะที่ยังคงทิศทางไว้ ฉันไม่ชอบวิธีแก้ปัญหานี้เพราะมันดูปลอมและฉันยังคงมีปัญหาว่าลูกบอลกำลังลอยอยู่บนสายเว้นแต่ว่าฉันจะทำให้สายสั้นมาก .. กรุณาส่องไฟนี้ออกมาขอบคุณ! แก้ไข ขอบคุณสำหรับการป้อนข้อมูลของทุกคนฉันแก้ปัญหาด้วยการแกว่งแขนช้าและเมื่อผู้เล่นปล่อยลูกบอลคว้าความเร็วของบอลและสองครั้ง ดูเหมือนว่าเหมือนกับการเปลี่ยนขนาดขั้นตอน มีอีกสิ่งหนึ่งที่ฉันต้องทำ เนื่องจากแขนแกว่งช้ามากลูกบอลจึงแขวนอยู่ที่ปลายแขนแทนที่จะแกว่ง ฉันแก้ปัญหานี้โดยใช้แรงเท่ากับแรงโน้มถ่วงบนลูกบอลในระหว่างและเฉพาะในช่วงสวิง จากนั้นมันจะไม่แขวนที่นั่นอีกต่อไป แต่จะแกว่งแขนพร้อมกัน คำตอบของ @MrCranky มีรายละเอียดและดูเป็นไปได้ดังนั้นฉันจึงยอมรับ :)