读书人

cocos2d 小结:四 背景的循环移动

发布时间: 2012-08-26 16:48:06 作者: rapoo

cocos2d 总结:四 背景的循环移动

1:CCSpriteFrameCache

1):?从*.plist文件中读取内容设置?CCSpriteFrameCache ,该对象是一个全局对象

// Load all of the game's artwork up front.

????????????? CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];

????????????? [frameCache addSpriteFramesWithFile:@"game-art.plist"];

2): Now uses the image from the Texture Atlas.

//bullet.png文件名称是在*.plist文件中定义的

CCSpriteFrame* bulletFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"bullet.png"];

CCSpriteBatchNode* batch = [CCSpriteBatchNode batchNodeWithTexture:bulletFrame.texture];

?

从CCSpriteFrameCache 直接创建CCSprite对象

for (int i = 0; i < 7; i++)

????????????? {

???????????????????? NSString* frameName = [NSString stringWithFormat:@"bg%i.png", i];

???????????????????? CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:frameName];

???????????????????? sprite.position = CGPointMake(screenSize.width / 2, screenSize.height / 2);

???????????????????? [spriteBatch addChild:sprite z:i];

????????????? }

?

spriteWithSpriteFrameName方法的源代码为:(也是从CCSpriteFrameCache读取数据)

+(id)spriteWithSpriteFrameName:(NSString*)spriteFrameName

{

?????? CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:spriteFrameName];

?????? return [self spriteWithSpriteFrame:frame];

}

?

2:ccpAdd(point1,point2);

CGPoint velocity=ccp(1,2);

self.position = ccpAdd(self.position, velocity);

从point1开始按照point2的增量增加

?

1 楼 qichunren 2010-11-19 不错不错。谢谢。

读书人网 >操作系统

热点推荐