【问题标题】:Cocos2D: how to tweak CCMenuItem with only one sprite?Cocos2D:如何只用一个精灵调整 CCMenuItem?
【发布时间】:2013-03-13 17:01:01
【问题描述】:

如何调整 CCMenuItemSprite 以仅支持一个精灵?

目前我有:

[CCMenuItemSprite itemWithNormalSprite:one selectedSprite:selectedOne] 

但想拥有:

[CCMenuItemSprite itemWithNormalSprite:one] 

编辑:我想修改 CCMenuItem 以仅使用一个 CCSprite 而不是两个。所以我也需要改变内部方法。

【问题讨论】:

    标签: ios cocos2d-iphone sprite ccmenuitem


    【解决方案1】:

    您可以使用与所选精灵相同的(正常)精灵。单击后,按钮将不执行任何操作。

    【讨论】:

    • 是的,但我不整洁,两个精灵有不同的行为和动画,并且包括一些可触摸的项目
    • @mm24 那我不太理解这个问题。你说你只想为CCMenuItem 支持一个精灵。但是,这些方法需要同时支持未选中和选中的精灵。您是否以其他方式使用菜单?
    • 添加了一个编辑,我需要更改 CCMenuItem 的代码,但之前想有一些快速提示。我会尽快发布我的尝试。
    • @mm24 我认为您修改代码的承诺并不是最好的解决方案。仅供参考 cocos2D 在内存中缓存纹理 - 因此提供与所选图像相同的图像不会添加第二个精灵。我想我对你想要完成的事情感到困惑,当它工作得很好并且很简单时可能只需要一个精灵
    【解决方案2】:

    你可以使用

    [CCMenuItemSprite itemWithNormalSprite:one selectedSprite:one]
    

    这样,当你选择精灵时什么都不会发生

    【讨论】:

    • 是的,但我不整洁,两个精灵有不同的行为和动画,并且包括一些可触摸的项目
    【解决方案3】:

    试试这个,只是改变所选精灵的颜色。

    CCSprite *sprite1   = [CCSprite spriteWithFile:@"Button.png"];
    CCSprite * sprite2  = [CCSprite spriteWithFile:@"Button.png"];
    sprite2.color = ccc3(128, 128, 128);
    
    CCMenuItemImage *itemEasyLevelImage = [CCMenuItemImage  itemWithNormalSprite:sprite1
                                                                  selectedSprite:sprite2
                                                                           block:^(id sender){}];
    

    【讨论】:

    • 这不是我需要做的,我只想使用一个 Sprite :) 而没有两个 sprite :)
    • 好的..这是一个好主意..有一件事是即使你用相同的图像创建2个精灵然后cocos2d只创建一个openGL纹理并且加载只发生一次。所以我可以说你只是针对分数内存和时间的分数:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多