cocos2djs-js中怎么删除一个精灵

主题 : cocos-js中sprite如何更换图片
级别: 新手上路
可可豆: 97 CB
威望: 87 点
在线时间: 38(时)
发自: Web Page
来源于&&分类
cocos-js中sprite如何更换图片&&&
cocos-js中sprite如何更换图片
级别: 侠客
UID: 473134
可可豆: 236 CB
威望: 237 点
在线时间: 89(时)
发自: Web Page
用loadTexture
级别: 新手上路
可可豆: 97 CB
威望: 87 点
在线时间: 38(时)
发自: Web Page
回 1楼(striver) 的帖子
大神可以详细说一下吗
级别: 新手上路
可可豆: 29 CB
威望: 29 点
在线时间: 103(时)
发自: Web Page
sprite.initWithFile(url)
级别: 侠客
UID: 473134
可可豆: 236 CB
威望: 237 点
在线时间: 89(时)
发自: Web Page
回 2楼(UntoldStories) 的帖子
就是你的精灵直接调用loadTexture这个方法,然后里面的参数传入图片的路径就可以了。 然后你的精灵的图片就会变了。
级别: 新手上路
UID: 480946
可可豆: 70 CB
威望: 42 点
在线时间: 23(时)
发自: Web Page
setFrameSprite(&url&)
我只是看看,因为我基本不懂
级别: 新手上路
可可豆: 22 CB
威望: 22 点
在线时间: 109(时)
发自: Web Page
我曹他妈,没一个正确
级别: 新手上路
UID: 280842
可可豆: 5 CB
威望: 7 点
在线时间: 9(时)
发自: Web Page
如果是全路径的图片 var texture = cc.textureCache.addImage(&xx/xx.png&); bg.setTexture(texture);如果图片已经加到内存就直接用 bg.setSpriteFrame(&xx.png&);
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版cocos2d-x中 多个精灵都调用同一个动作 代码该如何写_百度知道
cocos2d-x中 多个精灵都调用同一个动作 代码该如何写
我现在的需求是
需要在屏幕上创建5颗星星,每颗星星都是一组帧动画
首先使用第一帧制作了第一个精灵
复制4个精灵
制作一个星星闪烁的动画Action, 结果用
CCAction *starAction 表示。
starFrame-&runAction( starAction );
starFrame2-...
我有更好的答案
一个动画只能被一个精灵绑定,要多个用同一个动画复制一份就好了。starFrame2-&runAction((CCActionInterval*)starAction -&copy());
谢谢, 确实是Action不可以复用的, 可能其中涉及多个指针导致的我是把Action单独提出做一个函数来解决了说到copy()CCSprite 该如何复制呢? 我尝试使用 sprite1-&copy()
结果编译后报错。目前采用深拷贝办法CCSprite* sprite2 = new CCSprite(*sprite1)总感觉不是很优雅,cocos2d引擎中有没有提供复制精灵的方法呢?
CCSprite貌似没法复制的。
采纳率:38%
为您推荐:
其他类似问题
您可能关注的内容
cocos2d的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。主题 : 求教,怎么获得一个精灵上某一点是否是透明的?
级别: 新手上路
可可豆: 21 CB
威望: 21 点
在线时间: 70(时)
发自: Web Page
来源于&&分类
求教,怎么获得一个精灵上某一点是否是透明的?&&&
请问各位大神, 怎么获得一个sprite或者imageview上某一点是否是透明的 用作不规则图片的点击判断 
级别: 新手上路
可可豆: 29 CB
威望: 29 点
在线时间: 98(时)
发自: Web Page
我记得uibutton能实现这个 你可以去看看uibutton的代码参考一下
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
发自: Web Page
不用看了,uibutton 是不可能实现的
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
发自: Web Page
对于3.x之后的版本目前只有2种方法:一是:重新创建这张图片(用Image)然后获取像素信息来判断,&&二是:重绘一次(用RenderTexture)在end()方法之后加上这一句Director::getInstance()-&getRenderer()-&render();&&&& 第二种方法存在一定的隐患,推荐使用第一种方法。
级别: 侠客
可可豆: 265 CB
威望: 266 点
在线时间: 280(时)
发自: Web Page
c++那边的方法好像不能用有个笨方法,把不规则图的a值,直接做成文档,拿点击的坐标去匹配下
级别: 新手上路
可可豆: 29 CB
威望: 29 点
在线时间: 98(时)
发自: Web Page
额 -,-为啥我会有uibutton实现了这个功能的错觉- .=
级别: 新手上路
可可豆: 21 CB
威望: 21 点
在线时间: 70(时)
发自: Web Page
回 3楼(lovekankan) 的帖子
我试试第一种方式,多谢多谢
级别: 新手上路
可可豆: 51 CB
威望: 51 点
在线时间: 28(时)
发自: Web Page
请问楼主这个问题解决了吗?
级别: 新手上路
UID: 223847
可可豆: 147 CB
威望: 103 点
在线时间: 255(时)
发自: Web Page
楼主问完问题,有正确解决方法的话 可否贴出来 大家参考一下
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版精灵是2D游戏中得主角,这次就总结一下cocos2d-x中精灵的使用。
首先,创建一个变量 CCSprite *pS
加载函数分为两组initWithXXXX和spriteWithXXXX,其主要的区别是使用initWithXXXX的手工作业,而spriteWithXXXX是纯自动化作业。在SpriteWithXXXX中,先分配内存,然后加载,最后加入到autorelease中。而前者只有加载的部分,分配内存以及释放都需要靠自己。下边全部以spriteWithXXXX函数说明。
1,从文件中直接加载
从文件中加载很简单,只需要 CCSprite::spriteWithFile(&文件完整名称&); 其中文件名必须是完整路径,用cocos2d-x生成的项目中Resources目录为根目录。若有一个文件目录为..\Resources\chars\a.png 则 文件名部分就应该为&chars/a.png&。值得注意的是,在WINDOWS下,后缀名大写小写无所谓,但是在MAC下,后缀的大小写必须与文件完全一致,否则无法加载。
此函数还有一个重载函数,后边多一个CCRect参数,可以通过此参数设定加载图片中某个矩形区域。
2,间接加载
有些经常被用到或者需要频繁加载移除的一些资源,如果每次都从文件中加载,程序的效率会变得非常低,通常的做法是将这些文件先读到缓存中,然后再从缓存中加载。
CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()-&addImage(pszFilename);
这个函数将一个图片加入缓存并返回一个CCTexture2D的指针。然后就可以
pSprite = CCSprite::spriteWithTexture(pTexture);
如果一个资源已经被加入到了缓存,addImage是不会再加一遍的。程序中我很少会直接用spriteWithTexture这个函数,因为需要保存pTexture的指针。而在spriteWithFile函数中起内部就已经使用了上述过程。
另一种间接加载方法是利用SpriteFrame。SpriteFrame是把一个大的图片划分掉,每一个矩形区域就是一个SpriteFrame。其实如果这个SpriteFrame在大图中的矩形区域已知的话,可以直接使用CCTexture2D的方式,使用CCRect参数。SpriteFrame给我们提供了一种快捷,简便的方式,就是将这个矩形区域信息保存到plist文件中,并通过一个名称作为索引。生成这种大图也有很多工具,我使用过两种工具,一个是
是一个在线的免费工具,另一个我常用的是 。这是一个收费软件,不过免费版也能满足基本的需要。这两种工具可以生成一个.plist文件和一个图片文件。存放的时候讲这两个关联的文件放在同一个目录下。在需要使用的时候,我们可以将它加载到缓存中:
CCSpriteFrameCache *pCache = CCSpriteFrameCache::sharedSpriteFrameCache();
pCache-&addSpriteFramesWithFile(&XXXX.plist&);
其中plist文件的路径是完整路径。
然后可以用两种方式加载
pSprite = CCSprite::spriteWithSpriteFrame(pCache-&spriteFrameByName(szFrameName));
pSprite = CCSprite::spriteWithSpriteFrameName(szFrameName);
看起来第一个函数比较麻烦,实际上,第二个函数调用的是第一个函数。。。。值得说明的是,这里的szFrameName不需要完整路径,而是文件名索引。
二,常用操作
精灵加载完了就改各种使用了。
锚点就是所有旋转,移动,缩放的参考点。cocos2-x中默认的锚点是中心点。锚点用比例来表示范围为0-1,(0,0)点代表左下点,(1,1)代表右上点。设置的函数为setAnchorPoint(ccp(0.5, 0.5));
setRotation(angle) 其中angle为角度不是弧度。正数为顺时针旋转,负数为逆时针旋转。
setPosition(ccp(xPos, yPos)) xPos和yPos为相对于父节点锚点的位置。
setScale(s);   // 整体缩放
setScaleX(s); // 原图片坐标X轴缩放
setScaleY(s); // 原图片坐标Y轴缩放
s为比例,s = 1表示原尺寸。
setSkewX(s); // 原图片坐标X轴倾斜
setSkewY(s); // 原图片坐标Y轴倾斜
X轴向右为正,Y轴向上为正。
setOpacity(s);
s范围0-255,0完全透明,255完全不透明。
setIsVisible(bVisible)
bVisible为bool值true代表可见false代表不可见
setFlipX(bFlip);  // 水平翻转
setFlipY(bFlip);  // 竖直翻转
bFlip为true,则图片翻转,false不翻转。注意,翻转是针对原图片的操作,水平翻转相当于在图片编辑软件里水平翻转一样。不根据锚点进行翻转。翻转以后,设置的以前设置的锚点不会随着图片的翻转而改变。比如设置右下角为锚点,则翻转以后,锚点为翻转后的图片的右下角(是不是有点绕?)
最后,初始化完成后,不要忘了使用addChild加入到父节点,否则是不会显示的。
阅读(...) 评论()他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 cocos2d js 环境搭建 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信