实现无限滚动背景的技术指南
1. 代码中重新创建背景
在开发过程中,我们可能会思考如何在源代码中重新组合图像,而无需花费大量时间来精确放置这些简化后的图像。实际上,由于所有图像都保存为全屏图像,TexturePacker 会存储图像偏移量,cocos2d 在渲染精灵时会使用这些偏移量。我们只需将每个图像在屏幕上居中,它们就会处于正确的位置。
以下是新添加到项目中的 ParallaxBackground 节点的代码:
@interface ParallaxBackground : CCNode
{
CCSpriteBatchNode* spriteBatch;
int numSprites;
}
@end
这里保留对 CCSpriteBatchNode 的引用,是因为在代码中会频繁访问它。将节点存储为实例变量比通过 getNodeByTag 方法向 cocos2d 请求节点更快,尤其是当节点有更多子节点时。这样做可以节省一些 CPU 周期。
在 ParallaxBackground 类的 init 方法中,创建 CCSpriteBatchNode 并从纹理图集添加所有七个背景图像:
-(id) init
{
if ((self = [super init]))
{
CGSize screenSize = [CCDirector sharedDirector].winSize;
// Get the game's texture
超级会员免费看
订阅专栏 解锁全文
196

被折叠的 条评论
为什么被折叠?



