怎样实现子弹角度跟随物体移动角度发射一段距离

生成就脱离飞机父节点了,飞机再转向,角度不就变了吗?假如没变,根据角度咋计算对应方向的向量啊,,,,,,,,

怎样才能使一个向量旋转一个方向

向量铁定转不了啊,可是飞机移动会产生无数个向量啊,

bullet.x += vector.x;
bullet.y += vector.y;

老哥,我没表达出我的意思,给你看图把,就是子弹现在已经脱离飞机了,但是我想让子弹有自己的航线,然后跑出一定的距离后再被回收

然后我也不会说了,就是往后不会做了,,,,,

而且这个ts他不识别vector这个类


上火

飞机旋转角度换算出射击方向向量,在用这个向量作为子弹的移动的方向

也就是子弹生成并且也成功随着飞机头方向变动而变动发射方向但还不会飞出去吧?

设定一段距离,通常设为大于(测试时最好小于但还是要离发射点远一点)可视窗口对角线长度。在子弹生成的代码设置一个定时器(或者直接使用动作系列函数,3.0版本用tween函数)让子弹飞行这段距离后自然消亡(或直接让子弹节点挂个脚本,外部生成子弹时立马传入发射方向,利用组件内置的update函数让子弹运动一段距离)。

你想问的应该是让子弹以物体移动的角度移动吧 :sweat_smile:

不太明白。。。

对对对,我就是想这么做,但是不会操作

没毛病,一句话到位了

bullet.x += vector.x;
bullet.y += vector.y;

其中的vector就是飞机发射子弹时的方向向量,可以发射的时候传进来

啊,我现在正在这么做,但是角度写的有毛病,得到bullel组件下bulletpool脚本中的creatorBullet方法下的angle(角度),为啥给我报空呢

获取飞机的移动向量

链式调用要求非尾端调用的函数必须要有返回值吧;一般不在函数执行后还引用函数内部的变量啊;
可以在子弹挂载的脚本中添加一个用于外部传入的初始化函数比如名为init(),传入参数按需要设定,然后在子弹生成的脚本中在生成子弹之后紧接着通过调用这个函数把需要的数据传进去,比如发射方向的向量,至于子弹怎么动,那当然交给子弹挂载的脚本去处理更好些(当然有些情况下也可以在子弹的父节点去处理,比如说节点的位置默认是基于父节点的,子节点无特别逻辑要处理的话,直接在父节点让子节点更新位置也可以)

看完好像懂了什么,但是还好像什么都没懂, :weary:

简单点说就是你需要一个单独的组件来管理子弹,在子弹生成的时候传入飞机当前的角度和子弹速度等你需要的参数,然后子弹按这个参数自己去运动,update也好,cc.tween也好,就看你喜欢了