首先,我得先声明一下,我是一名超级菜鸟,刚刚参加学校实验室跟着老师做项目。所以写的东西也是乱七八糟的。请原谅我讨论组里面的生成动画方法已经失效,额 因为版本升级不兼容以前的某些函数,所以我斗胆发表这篇 好了 废话不多了 上菜。
//应该满足条件 1.fname=动画的png, length=png图片的长度。。。。flag=根据png图片得到从第几行开始截取,从而取得方
向动画。
CCAction *GAMESceneLayer::my_donghua(const char *fname, int length, int highth, int flag)
{
CCTexture2D *mode = CCTextureCache::sharedTextureCache()->addImage(fname);
CCArray *m_frames = new CCArray();//CCMutableArray已经木有了。。。
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
CCSpriteFrame *frame = CCSpriteFrame::frameWithTexture(mode,CCRectMake(j * length / 4, i * highth / 4, length / 4, highth / 4));
m_frames->addObject(frame);
}
}
int a = 0, b = 0;
if (flag == 0)
{
a = 0;b = 4;
}else if (flag == 1)
{
a = 4;b = 8;
}else if (flag == 2)
{
a = 8;b = 12;
}else if (flag == 3)
{
a = 12;b = 16;
}
CCLog("a = %d, b = %d", a, b);
CCArray *temp = new CCArray();
for (int i = a; i < b; i++)
{
temp->addObject(m_frames->objectAtIndex(i));
}
//enemy = CCSprite::spriteWithSpriteFrame((CCSpriteFrame*)temp->objectAtIndex(flag));
CCAnimation *m_ani = CCAnimation::animationWithSpriteFrames(temp, 0.2f);
CCAnimate *m_action = CCAnimate::actionWithAnimation(m_ani);
CCAction *tempAction = CCRepeatForever::actionWithAction(m_action);
return tempAction;
}
命名规则也很丑。。。额 我是小小鸟。我愿意把我写得很挫的代码分享。希望大牛们帮我优化一下吧 呵呵
借用老G的图片
324
325