版本: cocos creator 2.4.6
语言: TypeScript
看了官方文档,想学习一下对象池的使用,弄了个练习。
如图1,空节点bullet上挂载组件bulletManager,子节点是子弹图片,没有挂载任何组件。
图2图3是bulletManager.ts的代码
图4是浏览器开发者工具运行的结果,为什么我超出屏幕的子弹节点没有回收到bulletPool对象池中?
版本: cocos creator 2.4.6
语言: TypeScript
看了官方文档,想学习一下对象池的使用,弄了个练习。
如图1,空节点bullet上挂载组件bulletManager,子节点是子弹图片,没有挂载任何组件。
图2图3是bulletManager.ts的代码
节点x为0时在屏幕中心点,而且你不懂打印调试吗?这都能困扰一下午,哪怕打印一下x的值和width对比就不会出现这样的问题
还有子弹方向不可能朝一个方向前进,应该用矩形和点碰撞相交检测
是42行的if语句用错了?
那就是要改变子弹的运动方式,不使用moveTo方法?
我看下来,对每个子弹你回收的代码只执行了一次,if判断的时候都刚添加上去,并没有超出屏幕。所以没回收
就目前你放出来的代码看,也不关对象池的事,是你逻辑有问题
我只能说没有任何程序思维和基础,就不要想一个人做游戏了
先把五子棋,俄罗斯方块,雷霆战机,消消乐这些项目自己能独立写出来的时候再做自己想做的游戏吧
并没有,我目前还是在看官方文档学习,刚好学到对象池,不过还是谢谢你的建议,确实是我存在逻辑错误,我把判断是否出屏幕的代码放在update里,问题已经解决了
是的,我把判断的if语句放在update里就解决了,谢谢了
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。