求救大佬们,看看困扰我一下午的使用对象池时发生的bug

版本: cocos creator 2.4.6
语言: TypeScript

看了官方文档,想学习一下对象池的使用,弄了个练习。
如图1,空节点bullet上挂载组件bulletManager,子节点是子弹图片,没有挂载任何组件。

图2图3是bulletManager.ts的代码



图4是浏览器开发者工具运行的结果,为什么我超出屏幕的子弹节点没有回收到bulletPool对象池中?

节点x为0时在屏幕中心点,而且你不懂打印调试吗?这都能困扰一下午,哪怕打印一下x的值和width对比就不会出现这样的问题

还有子弹方向不可能朝一个方向前进,应该用矩形和点碰撞相交检测

是42行的if语句用错了?

那就是要改变子弹的运动方式,不使用moveTo方法?

我看下来,对每个子弹你回收的代码只执行了一次,if判断的时候都刚添加上去,并没有超出屏幕。所以没回收

就目前你放出来的代码看,也不关对象池的事,是你逻辑有问题

我只能说没有任何程序思维和基础,就不要想一个人做游戏了

先把五子棋,俄罗斯方块,雷霆战机,消消乐这些项目自己能独立写出来的时候再做自己想做的游戏吧

并没有,我目前还是在看官方文档学习,刚好学到对象池,不过还是谢谢你的建议,确实是我存在逻辑错误,我把判断是否出屏幕的代码放在update里,问题已经解决了

是的,我把判断的if语句放在update里就解决了,谢谢了

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。