时间:2021-07-01 10:21:17 帮助过:24人阅读
在用cocos2dx实现重复滚动的背景时,采用两个背景图互相拼接的办法. 但是在实现过程中,总是出现裂缝. 已开始采用的是 CCMoveTo CCCallFuncN 组成 CCSequence 的办法来做,怀疑裂缝的问题是因为调用 CCCallFuncN 时机不对导致的. 于是采用 scheduleUpdate() 的
在用cocos2dx实现重复滚动的背景时,采用两个背景图互相拼接的办法. 但是在实现过程中,总是出现裂缝.
已开始采用的是 CCMoveTo + CCCallFuncN 组成 CCSequence 的办法来做,怀疑裂缝的问题是因为调用 CCCallFuncN 时机不对导致的.
于是采用 scheduleUpdate() 的方法,自己在 update()中,实现功能的方式来做,但是裂缝依然没有干掉.
再之后发现,当每帧 deltatime 过于大的时候,裂缝就会变大的问题.于是想到了是逻辑错误.最终搞定.
搞定后在网上看到这篇文章,和我想表达的意思类似,
作者分析的非常好,还把错误的原因用画图的形式说明了,写的非常好.在此给出链接 :
http://blog.csdn.net/handz_cpp/article/details/17609405
另外值得一提的是 cocos2dx 的坐标系统使用的是 float 类型,浮点数。我在找到问题以后,搞了半天还是有缝,最后把坐标差用 float 而非 int 声明之后,就解决了.