作者InitialPower (InitialPower)
看板GameDesign
标题[程式] 请问如何精准的计算2D子弹的移动
时间Fri Oct 28 12:40:16 2011
最近做Tower Defence类型的游戏
遇到了射击子弹出去的问题
本来是让子弹自己有onFrame事件
然後不断地朝敌人的位置前进,就算敌人会移动
子弹也会追着跑
但是只要移动距离变长,子弹的轨迹就会渐渐变成弧线
看起来很诡异
之後试了另外一个方法,只有在射击的一瞬间计算
敌人与炮塔之间的角度,然後用Box2D把子弹设定角度快速推出去
打出来是精准的直线,而且感觉很省支援
是改良了不少,不过当遇上移动速度快且距离长的敌人时
出现了会打不中的情形
所以现在想请问
我想要在计算角度的时候,就先计算敌人移动的前置量
要如何计算的出来勒
已知条件:子弹的移动速度、敌人的移动速度与方向
请知道的人不吝指教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.105.138.209
※ 编辑: InitialPower 来自: 112.105.138.209 (10/28 12:41)
1F:推 LaPass:方案1:把子弹改成追踪魔法弹 (耗时:数分钟) 10/28 13:41
2F:→ LaPass:方案2:别管碰撞判断了,在发射瞬间就算好飞行时间、碰撞点 10/28 13:42
3F:→ LaPass:,然後把「显示子弹飞过去射中人」的部分显示出来。 10/28 13:43
4F:→ LaPass: 破撞时间到,不管子弹在哪里,都当成命中。 10/28 13:44
5F:→ azureblaze:方案3:太快太远打不到是特色不是bug 10/28 14:02
6F:→ Foremanytz:弹速V 目标速U, (Vx-Ux):(Vy-Uy)=(△x):(△y) 10/28 14:20
7F:→ InitialPower:方案4:把程式码全丢了,当做从来没写过这段程式 10/28 16:12
8F:→ InitialPower:感谢各位的回复,我研究看看 10/28 16:12
9F:→ cowbaying:这方案4...... 10/30 00:16
10F:推 Ebergies:TD 这类游戏应该都可以知道敌人每个 frame 的确切位置 10/30 18:59