我们可以在cocos2d游戏中动态更改玩家图像吗?

时间:2013-07-16 04:55:41

标签: ios iphone cocos2d-iphone cocos2d-x

我想从图库中选择播放器图像,或者我可以从凸轮拍摄照片,我需要在播放器移动时为这些图像设置动画。我是cocos2d的新手,任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

要更改播放器动画,您需要对其进行CCAnimate操作。

// Add sprite frames to sprite frame cache (if you are using a spritesheet)
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"NinjaPreto.plist"];

// Create animation
CCAnimation* animation = [CCAnimation animation];

// Create sprite frames
CCSpriteFrame *spriteFrame1 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"animation1.png"];
CCSpriteFrame *spriteFrame2 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"animation2.png"];
CCSpriteFrame *spriteFrame3 = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"animation3.png"];

// Add sprite frames to animation
[animation addSpriteFrame:spriteFrame1];
[animation addSpriteFrame:spriteFrame2];
[animation addSpriteFrame:spriteFrame3];

animation.delayPerUnit = 0.1;
animation.restoreOriginalFrame = NO;

// Run action
[player runAction:[CCRepeatForever actionWithAction:animation]];

因此,如果您想更改播放器图像,只需使用您想要的新图像创建一个新的动画操作。

PS。:如果您只想更改播放器图片而不使用动画,请使用:

[player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"image.png"]];

答案 1 :(得分:0)

在COCOS2D-X中,您可以通过以下方式执行此操作

CCTexture2D *tex = CCTextureCache::sharedTextureCache()->addImage("xyz.png");
sprit_name->setTexture(tex);

如果你想改变它的尺寸,那么也写下这条线

sprit_name->setTextureRect(CCRectMake(0,0, tex->getContentSize().width, tex->getContentSize().height));