คำถามติดแท็ก projectile-physics

ฟิสิกส์การเคลื่อนที่ของวัตถุที่แล่นไปในอากาศตั้งแต่การขว้างลูกเบสบอลไปจนถึงปืนใหญ่เรือรบไปจนถึงก้อนหินที่ตกลงมา

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

4
การคำนวณความเร็วต่ำสุดของกระสุนปืนที่จำเป็นในการเข้าถึงกลุ่มเป้าหมายเป็นรูปโค้งโค้ง
หากฉันมีจุดที่ฉันต้องการตีในตอนท้ายหรือในช่วงโค้งพาราโบลาฉันจะคำนวณความเร็ว x และ y ที่ต้องการได้อย่างไร

4
การป้องกันหอคอยแบบ 2 มิติ - กระสุนใส่ศัตรู
ฉันกำลังพยายามหาวิธีแก้ปัญหาที่ดีสำหรับกระสุนเพื่อตีศัตรู เกมดังกล่าวเป็นการป้องกันหอคอยแบบ 2 มิติหอคอยควรจะยิงเป็นกระสุนและโจมตีศัตรูที่รับประกัน ฉันลองวิธีแก้ปัญหานี้ - http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/ ลิงค์ที่กล่าวถึงเพื่อลบต้นกำเนิดของกระสุนและศัตรูเช่นกัน (การลบเวกเตอร์) ฉันพยายามที่ แต่กระสุนเพียงแค่ติดตามรอบศัตรู float diffX = enemy.position.x - position.x; float diffY = enemy.position.y - position.y; velocity.x = diffX; velocity.y = diffY; position.add(velocity.x * deltaTime, velocity.y * deltaTime); ฉันคุ้นเคยกับเวกเตอร์ แต่ไม่แน่ใจว่าต้องดำเนินการขั้นตอนใด (การดำเนินการคณิตศาสตร์เวกเตอร์) เพื่อให้โซลูชันนี้ทำงานได้

5
วิธีการคำนวณการเลี้ยวมุ่งหน้าไปยังจรวดหรือไม่
ฉันมีขีปนาวุธที่ถูกยิงจากเรือในมุมหนึ่งจากนั้นขีปนาวุธจะหันไปหาเป้าหมายในส่วนโค้งด้วยรัศมีวงเลี้ยวที่กำหนด ฉันจะกำหนดจุดบนส่วนโค้งได้อย่างไรเมื่อฉันต้องเริ่มหมุนเพื่อที่ขีปนาวุธมุ่งตรงไปยังเป้าหมาย แก้ไข สิ่งที่ฉันต้องทำก่อนเปิดตัวขีปนาวุธคือการคำนวณและวาดเส้นทางการบิน ดังนั้นในตัวอย่างที่แนบมารถยิงมีส่วนหัว 90 องศาและเป้าหมายอยู่ด้านหลัง ขีปนาวุธทั้งสองนั้นจะถูกปล่อยออกที่ส่วนหัว -45deg หรือ + 45 องศาไปยังส่วนหัวของยานยิง ขีปนาวุธเริ่มหันเข้าหาเป้าหมายด้วยรัศมีวงเลี้ยวที่รู้จัก ฉันต้องคำนวณจุดที่เทิร์นนั้นใช้ขีปนาวุธเพื่อมุ่งหน้าไปที่มันจะหันไปโจมตีเป้าหมายโดยตรง เห็นได้ชัดว่าถ้าเป้าหมายอยู่ที่หรือใกล้ 45 องศาก็จะไม่มีการหมุนครั้งแรกขีปนาวุธจะพุ่งเข้าหาเป้าหมาย หลังจากเปิดตัวขีปนาวุธแผนที่จะแสดงการติดตามขีปนาวุธในบรรทัดนี้เพื่อระบุเส้นทางการบิน สิ่งที่ฉันทำคือการทำงานกับเครื่องจำลองที่เลียนแบบซอฟต์แวร์การดำเนินงาน ดังนั้นฉันต้องวาดเส้นทางการบินที่คำนวณได้ก่อนที่จะเปิดตัวขีปนาวุธ ในตัวอย่างนี้เป้าหมายอยู่ด้านหลังรถยิง แต่เส้นทางที่ถูกคำนวณล่วงหน้าจะถูกวาด

3
Projectile Motion - ลูกศร
ในเกม 2D ฉันเพียงต้องการวาดวิถีลูกศรในการบิน ด้วยรหัสด้านล่างวิถี (พาราโบลา) ดูขวา แต่มุม (หรือการหมุน) หรือลูกศรไม่ได้ float g = -9.8f; float x = (launchVelocity * time); float y = (launchVelocity * time) + (0.5f * g * (float)Math.Pow(time, 2)); float angle = (float)Math.Tanh(y / x); ฉันกำลังคิดถึงอะไร ขอบคุณ

2
ฉันจะทำให้การโจมตีของผู้ชายที่ดีได้เพียงแค่โจมตีคนเลวและในทางกลับกันได้อย่างไร
เกมของฉันมีคนดีหลายประเภทและผู้ชายเลวหลายประเภท พวกเขาทั้งหมดจะทำการยิงขีปนาวุธใส่กัน แต่ฉันไม่ต้องการให้เกิดความเสียหายจากหลักประกันใด ๆ ที่เกิดขึ้นสำหรับการจัดเรียงอย่างใดอย่างหนึ่ง ดังนั้นคนเลวจึงไม่สามารถตี / ทำลายคนเลวคนอื่นและคนดีไม่ควรที่จะตี / ทำความเสียหายคนดีคนอื่น วิธีที่ฉันคิดว่าการแก้ปัญหานี้คือการทำให้มันเพื่อให้Unitอินสแตนซ์ (นี่คือ javascript, BTW) มีalignmentคุณสมบัติที่สามารถเป็นได้ทั้งหรือgood badและฉันจะปล่อยให้การปะทะเกิดขึ้นถ้า class Attack boolean didAttackCollideWithTarget(target) return attack.source.alignment != target.alignment and collisionDetected(attack.source, target) นี่คือรหัสหลอกแน่นอน แต่ฉันถามคำถามนี้เพราะฉันเข้าใจว่าอาจมีวิธีที่สง่างามกว่านี้ในการออกแบบนอกเหนือจากการเพิ่มคุณสมบัติอื่นให้กับUnitชั้นเรียน ของฉัน

4
การคำนวณวิถีวิถีรอบวงโคจรก่อนยิง
ฉันกำลังสร้างเกมด้วย Unity3D มันเป็นโคลนสงคราม Gravity ทั้งผู้เล่นและป้อมปราการ AI ยิงขีปนาวุธใส่กัน (ให้มุมและตัวแปรพลัง) พยายามที่จะไม่ชนขีปนาวุธบนดาวเคราะห์ แต่นี่คือคำถามของฉัน: ฉันจะทำให้ AI คำนวณพลังงานและมุมได้อย่างไรก่อนที่จะยิงขีปนาวุธของเขาโดยพิจารณาแรงโน้มถ่วงของดาวเคราะห์ด้วย?

1
การเพิ่มการลากอากาศไปยังสมการวิถีลูกกอล์ฟ
ฉันกำลังพัฒนาเกมกอล์ฟ 2 มิติใน VB.NET 2005 แต่ฉันติดอยู่กับวิธีการนำอากาศหรือแรงลมที่น่าจะกระทบลูก ฉันมีสมการเหล่านี้สำหรับกระสุนแล้ว: v0v0v_0สำหรับความเร็วเริ่มต้นของลูกกอล์ฟเมื่อถูกยิงหรือยิง ส่วนประกอบแนวตั้งและแนวนอนความเร็วของลูกกอล์ฟ: vxvy=v0cos(θ)=v0sin(θ)−gt∗vx=v0cos(θ)vy=v0sin(θ)−gt∗ \begin{align} v_x &= v_0 cos(\theta) \\ v_y &= v_0 sin(\theta) - gt* \end{align} ระยะทางแนวตั้งและแนวนอนของลูกกอล์ฟ: xy=v0cos(θ)t=v0sin(θ)t−(0.5)gt2x=v0cos(θ)ty=v0sin(θ)t−(0.5)gt2 \begin{align} x &= v_0cos(\theta)t \\ y &= v_0sin(\theta) t - (0.5)gt^2 \end{align} ฉันจะเพิ่มการลากอากาศในสมการนี้เพื่อส่งผลกระทบต่อความเร็วของลูกกอล์ฟได้อย่างไร ฉันไม่รู้ว่าจะทำยังไงมีใครเคยทำงานกับสมการที่คล้ายกันไหม

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

2
ขีปนาวุธที่มีเวลาคงที่
ฉันกำลังสร้างเกมกับผู้เล่นและอาวุธ ฉันต้องการยิงขีปนาวุธจาก P1 ถึง P2 ขีปนาวุธควรใช้เวลา 5 วินาทีในการเข้าถึง P2 ขีปนาวุธควรติดตาม P2 ด้วย ถ้า P2 เคลื่อนที่ไปไกลกว่านั้นขีปนาวุธจะต้องเร่งความเร็วขึ้นเพื่อสนองข้อ จำกัด ด้านเวลา หาก P2 เคลื่อนที่ไปทางซ้ายขีปนาวุธต้องเลื่อนไปทางซ้าย (และเปลี่ยนความเร็วเช่นกัน) ถ้า P2 เคลื่อนที่เข้าใกล้ P1 มากขึ้นขีปนาวุธจะต้องชะลอความเร็ว เป็นไปได้ไหม วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร? ขณะนี้ฉันไม่มีคลาส Vector2D (นี่ไม่ใช่เกมจริง แต่การเปรียบเทียบนั้นใช้งานได้ดี) ดังนั้นถ้าเป็นไปได้ฉันต้องการโซลูชันที่ไม่ต้องการ แก้ไข:นี่ไม่ใช่ขีปนาวุธจริง ๆ เช่นกัน :) ขอบคุณ!

2
ฉันจะหามุมยิงของกระสุนได้อย่างไร
ฉันกำลังสร้างเกม 2d ที่หน่วยยิงธนูใส่กัน ฉันรู้ว่าปืนและตำแหน่งของเป้าหมายและความเร็วเริ่มต้นของกระสุนปืน ฉันต้องการทราบมุมที่กระสุนปืนควรมีเพื่อเข้าสู่เป้าหมาย เป้าหมายอาจมีความสูงแตกต่างจากมือปืน ในการสรุปฉันรู้ว่า v0, R และ g และฉันต้องหามุม (หรือความสูง?) ฉันอ่านhttp://en.wikipedia.org/wiki/Projectile_motionแต่ฉันไม่พบสิ่งที่เกี่ยวข้องกับสิ่งที่ฉันต้องการ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.