zoukankan      html  css  js  c++  java
  • CCSprite精灵更换图片

    方法一:

    	//创建精灵
    	CCSprite *pSprite = CCSprite::create("audio_on.png");
    
    	//创建纹理
    	CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("audio_off.png");
    	
    	//给精灵设置新的纹理
    	pSprite->setTexture(texture);


    方法二:

        CCSprite* pSprite = CCSprite::create("HelloWorld.png");
        CCSprite* pSprite2 = CCSprite::create("bg2.png");
    
        pSprite->setPosition(ccp(11,22));
        pSprite2->setPosition(ccp(22,33));
    
        this->addChild(pSprite, 0);
        this->addChild(pSprite2, 1);
    
        //需要注意的是displayFrame(),前提是你的精灵是addChild()到场景中的,不然获得的displayFrame会为空
        //pSprite设置当前显示帧为pSprite2正在显示的的帧(完成更换)
        pSprite->setDisplayFrame(pSprite2->displayFrame());

    方法三:

    我们可以使用

    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("res.plist");

    来代替

    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("res.plist","res.png");

    因为当参数仅为res.plist文件时,函数会自动寻找对应的res.png文件。

    当使用2个参数时,我们可以手动指定加载的png的名字,比如我们想加载res.plist来解析demo.png时,可以这样指定:

    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("res.plist","demo.png");

    当执行完上面的语句时,TP打包后的图片就已经载入内存了,我们就可以使用plist里面定义的key值来使用我们想要的图片(res1.png、res2.png)

    	//载入TP打包的plist和png文件到内存(有2张图片分别是res1.png和res2.png)
    	CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("res.plist","res.png");
    
    	//创建精灵
    	pSprite = CCSprite::createWithSpriteFrameName("res2.png");
    
        pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
    
        this->addChild(pSprite, 0);
    
    	//创建精灵帧
    	CCSpriteFrame* f = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("res1.png");
        
    	//更换图片
    	pSprite->setDisplayFrame(f);


     还有就是直接创建Frame:

    如下:

     

    至于newSpriteFrame怎么实现的,可以看源码,然后转换成cocos2dx的c++写法就好了。

  • 相关阅读:
    手机网页唤醒app,
    h5 audio进度条
    js判断字符串与字符串相互包含,以及数组是否包含某个元素;
    vue cli 打包项目造成css背景图路径错误
    vue-cli webpack打包不.map文件,iview 项目打包完,图标路径有问题
    常用的活动榜单
    vue-cli的webpack模板项目配置文件分析,配置信息详解
    eclipse怎么debug项目
    什么是前置机,前置机的作用是什么
    jsp中连接数据库及实现增删改查
  • 原文地址:https://www.cnblogs.com/vokie/p/3602062.html
Copyright © 2011-2022 走看看