zoukankan      html  css  js  c++  java
  • cocos2dx, 重新initWithSpriteFrameName与重新setTexture()+setTextureRect()区别

    比如我们有一个sprite是通过createWithSpriteFrameName创建的,现在我们需要为其更换贴图,有两种方法:

    一种方法是再次调用createWithSpriteFrameName,即:sprite->initWithSpriteFrameName(newSpriteFrameName)。

    另一种方法是通过setTexture()+setTextureRect(),即:

    CCSpriteFrame*spriteFrame=CCSpriteFrameCache::sharedSpriteFrameCache()->getSpriteFrameByName(newSpriteFrameName);

    sprite->setTexture(spriteFrame->getTexture());

    sprite->setTextureRect(spriteFrame->getRect());

    第一种方法有很强的复作用,即sprite会被恢复出厂设置,以前对它设置的如opacity等均会失效。

    第二种方法才是正确的方法,仅改变sprite的贴图。

  • 相关阅读:
    Java
    Linux
    Linux
    Linux
    Java
    Ansible
    Ansible
    Java
    ACM&OI 基础数论算法专题
    题解 P4781 【【模板】拉格朗日插值】
  • 原文地址:https://www.cnblogs.com/wantnon/p/4520652.html
Copyright © 2011-2022 走看看