`
zcw_java
  • 浏览: 305667 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

菜鸟动画问题解决

 
阅读更多
COCOS2D对OpenGL进行得封装
今天一个菜鸟说:后面触发一个事件之后 又要播放一次
如果不删除之前的  会出现重叠的效果代码如下:
播放代码
-(void) TrafficShipAnimation
{   
    [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"trafficshipwin.plist"];
    CCSpriteBatchNode *spritebn = [CCSpriteBatchNode batchNodeWithFile:@"trafficshipwin.png"];
    [self addChild:spritebn z:3];
    NSMutableArray *ATFrames = [NSMutableArray array];
    for (int i =1; i<=7; i++) {
        
        [ATFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]
                             spriteFrameByName:[NSString stringWithFormat:@"WJC3_fenlei2_yunshuchuan%d.png", i]]];
    }
    CCAnimation *ATAnimate  = [CCAnimation animationWithFrames:ATFrames delay:0.2];
    sprite_traffic= [CCSprite spriteWithSpriteFrameName:@"WJC3_fenlei2_yunshuchuan1.png"];
    sprite_traffic.position = ccp(43+186/2,768-190-248/2);
    [spritebn addChild:sprite_traffic z:3];
   
    seq_traffic= [CCSequence actions:[CCAnimate actionWithAnimation:ATAnimate restoreOriginalFrame:NO],nil];
    [sprite_traffic runAction:seq_traffic];
}

以下是对话

A:事件触发之后直接调用的TrafficShipAnimation?没有stop

sprite_traffic.stopAllActions;
[self TrafficShipAnimation];

菜鸟:事件触发代码
sprite_traffic.stopAllActions;
[self TrafficShipAnimation];
-(void) WinAnimation
{
    sprite_traffic.stopAllActions;
    [self TrafficShipAnimation];
}

A:
sprite_traffic.stopAllActions???你确定调用了那个方法了么.你是OC

[sprite_traffic stopAllActions]

另外,你的代码每次调用那个方法都会额外创建一个    CCSpriteBatchNode *spritebn = [CCSpriteBatchNode batchNodeWithFile:@"trafficshipwin.png"];
[self addChild:spritebn z:3];

和重新alloc一个sprite_traffic

这样不好,成员本来就应该保持alloc一次最好

菜鸟:那该怎样写呢 

A:sprite_traffic的创建放到外面,或者初始化这个类的时候

还有那个batchnode

那个方法仅仅创建一个动画,重设sprite_traffic初始状态,然后run

如果你这个动画很平凡的话,你这个动画对象都可以当成成员

不用每次都创建,这样很浪费资源

我分享一断代码给你学习:
void runAnimation()
{
#define kCCMove_Time    3
#define kCCMove_End     ccp(200,200)
#define kCCMove_Begin   ccp(0,0)
    CCMoveTo *mv = CCMoveTo::create(kCCMove_Time,kCCMove_End);
    sprite -> stopAllActions();
    sprite -> setPosition(kCCMove_Begin);
    sprite -> runAction(mv);
}
//我没用帧动画和batchnode渲染
//原理一样
void runAnimation()
{
#define kCCMove_Time    3
#define kCCMove_End     ccp(200,200)
#define kCCMove_Begin   ccp(0,0)
    CCMoveTo *mv = CCMoveTo::create(kCCMove_Time,kCCMove_End);
    sprite -> stopAllActions();             //停掉动画
    sprite -> setPosition(kCCMove_Begin);   //重置状态
    sprite -> runAction(mv);                //run
}
//不要吧成员的创建放进这里面
//成员的创建应该在构造函数
分享到:
评论

相关推荐

    菜鸟教程之Diy留言动画教程

    总的来说,"菜鸟教程之Diy留言动画教程"是一个很好的起点,可以帮助初学者在实践中学习编程和动画制作,同时提升问题解决和项目管理能力。记得跟随教程一步步操作,并尝试理解和扩展所学知识,这将有助于你在IT领域...

    菜鸟用C语言写的一分钟动画

    标题中的“菜鸟用C语言写的一分钟动画”,呈现的是一个初学者通过不懈努力,利用C语言中的`putchar`函数,打造出的一个简单而有趣的动画效果。这个案例充分体现了C语言的编程魅力,同时也反映出编程实践对于初学者的...

    远程文件共享(菜鸟版)动画演示教程

    6. **远程控制软件**:如TeamViewer、AnyDesk等,它们不仅允许远程访问文件,还可以远程控制整个桌面,便于协助解决问题或演示操作。 7. **动画演示**:教程可能通过生动的动画演示,清晰展示每个步骤,包括设置...

    C4D菜鸟工具盒子

    对于初学者而言,C4D的学习曲线可能较为陡峭,但“C4D菜鸟工具盒子”正是为了解决这个问题而诞生的。这个工具整合盒子,旨在帮助新手快速上手,提升工作效率,让复杂的C4D操作变得简单易懂。 工具盒子中的功能设计...

    Unity3D菜鸟教程

    从给定的文件信息来看,标题“Unity3D菜鸟教程”和描述“Unity3D教程,菜鸟一样的例子,不妨碍参考,虽然日语版”表明这是一份针对初学者的Unity3D教程,即便是日语版本,也适合任何对Unity3D感兴趣的人士参考学习。...

    JQuery菜鸟到忍者

    本书《JQuery菜鸟到忍者》主要面向希望从...综上所述,本书《JQuery菜鸟到忍者》为jQuery学习者提供了一个全面的学习路径,涵盖了从基本操作到高级应用的多个方面,是提升jQuery技能、解决实际开发问题的实用指南。

    菜鸟专用 用C#做的飘动的窗体

    2. `Readme-说明.htm`:这是项目的阅读指南或说明文档,通常会提供关于如何运行程序、程序的功能介绍、使用注意事项以及可能遇到的问题和解决方案等信息。 3. `FlexCell.NET.msi`:这可能是第三方控件FlexCell的...

    jquery和w3school菜鸟教程.rar

    - 其次,查阅jQuery的API文档,了解每个方法的用途和参数,这将有助于解决具体问题。 - 最后,结合实际项目,不断尝试和应用所学知识,逐步提升jQuery的使用技巧。 总之,jQuery和W3School的资源结合使用,对于初学...

    R 菜鸟入门

    - 这告诉学习者,R语言学习的初期不需要追求过于复杂的功能和完美的代码,而应当关注能够完成当前任务和问题解决。 3. 第三秘诀:实践出真知!- 虽然内容未提及,但通常在技术学习中,实践是巩固知识和技能的关键。 ...

    血祭1986菜鸟FLASH制作

    7. **问题解答与技巧分享**:可能包含常见问题解答和一些实用的小技巧,帮助用户解决在学习过程中遇到的困难。 总的来说,这个压缩包对于想要学习Flash制作的新手来说是一个宝贵的资源,涵盖了从入门到进阶的多种...

    易语言中文编程-从入门到精通【菜鸟基础教程】.doc

    易语言是一种专为非专业程序员设计的中文编程语言,旨在降低编程难度,让更多的普通人能够参与到编程中来。...记得,编程不仅是技术,更是一种解决问题的思维方式,希望你在易语言的探索中不断成长。

    一幅图的动画实现方法

    本文介绍的方法有效地解决了传统动画实现方式存在的问题,不仅提高了动画的播放速度,还消除了因频繁切换图像而导致的闪烁现象。通过对图像组件的巧妙利用和算法的设计,使得只使用一幅图像就能实现丰富的动画效果...

    电脑菜鸟到高手必经之路

    11. **问题排查**:遇到电脑问题时,能尝试自我诊断,如查看错误日志、重启电脑、安全模式启动等方法。 12. **数据备份与恢复**:了解如何定期备份重要文件,以及在数据丢失时如何通过备份恢复。 13. **基础编程**...

    菜鸟驿站地址详情页面小程序源码.zip

    这是一个关于小程序开发的知识点分享,主要集中在实现一个菜鸟驿站地址详情页面的小程序源码上。小程序作为一种轻量级的应用形态,通常用于...但请注意,由于不提供技术支持,遇到问题可能需要自行解决或参考社区资源。

    JQUERY从菜鸟到忍者第二版源码

    《JQUERY从菜鸟到忍者第二版》是jQuery学习的经典之作,旨在帮助初学者逐步掌握这一强大的JavaScript库,从基础操作到高级应用,全方位提升技能。这个源码压缩包包含了作者精心编写的示例代码和练习,对于深入理解...

    flash贪吃蛇(初学者菜鸟版)

    【标题】"flash贪吃蛇(初学者菜鸟版)"是一个基于Adobe Flash开发的简单游戏,适合初学者进行学习和实践。...虽然制作者可能自谦作品不成熟,但这样的实践经历对于提升编程技能和解决问题的能力至关重要。

    Excel菜鸟提升技能秘籍(35招)

    通过学习和实践这35招,Excel菜鸟可以逐步提升技能,解决实际工作中的各种问题,实现数据处理的高效与精准。配合压缩包中的“Excel菜鸟提升技能秘籍(35招),动画显示,果断收藏。.htm”文件,通过生动的动画演示,...

    WPF图片浏览器菜鸟版

    **WPF图片浏览器菜鸟版** 是一个基于C#开发...通过研究和理解这个项目,初学者不仅可以了解WPF的基本使用,还能学习到C#语言的特性和实际开发中的问题解决策略。对于想要提升WPF技能的开发者来说,这是一个很好的起点。

    JQuery 菜鸟到忍者(jQuery Novice to Ninja)

    本书旨在通过一系列实用的示例和深入浅出的解释帮助读者从jQuery的新手成长为能够熟练运用jQuery解决复杂问题的专业开发者。本书不仅适合初学者入门学习,也适用于有一定基础的开发者进一步提升技能。 #### 书籍...

Global site tag (gtag.js) - Google Analytics