我的子弹是这么写的(这个脚本作用在子弹上),我想让这个子弹飞一段距离就让对象池回收,怎么算出来这个子弹飞的距离。

往后应该怎么写,
写一个回收条件,比如飞出屏幕
这个子弹飞的距离怎么算,,,
子弹生成的时候调用一个init 子弹脚本有一个属性startPos 然后你在go里面把当前的位置减去startPos并且得到这个距离(不仅仅是生成的时候,每次从对象池中取出来也要初始化startPos)

1.首先这个子弹是匀速移动的,在go()里边弄个累加器,每一帧累计一下距离,如果大于你给的固定回收距离,就回收了,放对象池里边。
2.要不就移动出屏幕给回收了,这个就不用判断子弹移动距离,只用判断子弹位置跟屏幕四边的位置做判断,出屏幕回收就行了。
对,我也是这个思路,然后不知道怎么下手,帧数这很迷,我是个小白。。。。
这个方式太多了,除了判断距离,你还可以判断飞行时间,距离除以速度,这个判断比向量运算简单点。
dt就是每帧执行的时间,累加起来就是运行到当前帧的总时间。
姐,我是个小白,你说的很多我都不是很明白 
思路是这么个思路,操作无从下手,我现在是这么个情况 
啊这 这不明白 可以先找点简单的做做再回来做这个呗 慢慢来 我这已经把代码帖到你只要做超过距离以后的对象池操作了
dt就是时间,你给的1000就是速度,速度*时间就是距离
这个点不吃透了,以后类似的也不会啊,不懂就问 
实在想不通,可以直接判断坐标来回收,当飞出屏幕外就进行回收
这个我也知道,代码不会写。。。。
怎么判断坐标,通过世界坐标算吗?除了屏幕四角坐标知道之外,其余的坐标。。。。。感觉还是算距离更稳一点、
let w = (this.canvas.width / 2 + this.node.width / 2)
let h = (this.canvas.height / 2 + this.node.height / 2)
this.node.x > w || this.node.x < -w || this.node.y > h || this.node.y < -h
可以精确到完全飞出屏幕外的一帧就回收
不过根据不同的适配方案,可能会有所不同,具体就看你怎么适配了
可行,但是我还是想知道距离怎么算,老哥能帮帮吗。。。
坐标判断:只要坐标系原点在同一位置的,都可以直接进行运算。
看不懂啥意思。。。老哥能举个例子说一下吗,刚入门,很多地方理解方式不一样,我的逻辑思维能力还没转过来
那就创建个记录上一次坐标的参数
private last_pos: cc.vec2 = null
private dis: number = 0;
go里面写
if(this.last_pos){
let now_dis = this.node.getposition().sub(this.node.getposition()).mag();
this.dis = this.dis + now_dis;
}
this.last_pos = this.node.getposition()
now_dis就是每帧移动的距离
没测试过,你试试