cocos2dx 播放gif】的更多相关文章

最近由ios应用转做游戏,游戏开始时需要播放一个视频,由于本身cocos2d-x播放视频的相关库,在网上搜到的资料都不是很全,我自己试过在cocos2dx直接调用ios的MediaPlayer来播放,确实能播放,但怎么弄都是竖屏,搞的郁闷.今天无意间发现通过cocos2d-iPhone的CCVideoPlayer来播放,特意实验了一下,原帖地址:http://blog.csdn.net/kaitiren/article/details/11832851. 按照作者的思路发现有很多问题 首先作者没…
起因 或许有人会说,cocos2dx中直接帧动画就行了用什么GIF. 起因是为游戏内部要用到第三方平台的头像,而第三方平台的头像大多都是用到Gif,所以才会有了这个需求 过程 查了各种文档都没找到.但是毋庸置疑的是,大多数解析库都是依赖gif_lib这个库的. 偶然间看到了android使用的skia库的gif解析 参考skia的代码基础上,有了后来的gifforcocos2dx 的库 示例 std::string name = "g2.gif"; name = CCFileUtils…
cocos2d-x是支持直接播放视频的,用的是Native端的播放器,视频的默认层级是在cocos的层级之上,如果是想让视频上面有cocos的控件,只能将视频的UI层级放在最下面,这个方法网上已经有比较多的教程,这里不再继续说明. 如果想让视频上面有控制按钮,如重新播放的按钮,有两个解决办法: 1 将视频层级放在最底层 2 保持现有层级不变 创建一个新的cocos控件 用来控制Native端的控件 也就是在Native端(Android和ios)分别实现一个控件 这个控件的层级最高 在视频播放的…
Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐) 于浩洋 著   ISBN 978-7-121-23998-4 2014年9月出版 定价:59.00元 356页 16开 编辑推荐 以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法 以热门游戏2048.卡牌为例,完整再现手游的开发过程 Cocos2d-x作者之一林…
转自:http://codingnow.cn/cocos2d-x/810.html 这一篇来学习怎么使用cocos2d-x引擎播放帧动画,就是把一帧一帧的图片像电影那样显示出来.1. 首先来了解一下相关的类CCAnimation:是精灵用来播放动画的参数,内部封装了一个帧序列(CCMutableArray<CCSpriteFrame*>)和每帧播放间隔时间(float m_fDelay),初始化该对象时记得指定delay时间,否则默认是0.CCAnimationCache:从名字很容易看出,它…
听说Cocos Studio非常久了,主要是由于骨骼动画.眼下看来Cocos2d-x播放动画的方式仅仅有2种: 第一种:是播放序列帧动画,即将动画的每一帧都载入进缓存里,须要播放时再使用Animation类来播放,这样的方法简单暴力.应对一些细节要求低的动画场景的时候.这么干无伤大雅. 可是当动画帧数稍高的时候就会须要大量的图片,消耗资源非常大. 另外一种:是由Cocos2d-x提供的Action类来播放动画,这样的动画是在帧循环中靠调整每次渲染的坐标来打到动画效果.因为帧循环是1/60秒刷新一…
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学到的菜单按钮的用法,制作了一个简单的“钢琴”游戏,其中部分代码如范例3-8所示,完整代码详见源文件本章目录下的ChapterThree06项目. [范例3-8 利用Cocos2d-x实现简单的钢琴] #include "HelloWorldScene.h" #include "S…
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内容主要都是介绍如何在屏幕上显示图像,事实上除了图像之外,音乐的播放也可以被理解为一种显示的方式,本节将学习在Cocos2d-x中播放声音的方法. (1)在HelloWorld.h中对HelloWorld类进行如下定义: class HelloWorld : public Cocos2d::Layer { pu…
听说Cocos Studio很久了,主要是因为骨骼动画.目前看来Cocos2d-x播放动画的方式只有2种: 第一种:是播放序列帧动画,即将动画的每一帧都加载进缓存里,需要播放时再使用Animation类来播放,这种方法简单暴力,应对一些细节要求低的动画场景的时候,这么干无伤大雅.但是当动画帧数稍高的时候就会需要大量的图片,消耗资源很大. 第二种:是由Cocos2d-x提供的Action类来播放动画,这种动画是在帧循环中靠调整每次渲染的坐标来打到动画效果,由于帧循环是1/60秒刷新一次,会让这样播…
Cocos2D-x的音频分为长时间的背景音乐和短的音效两种,我们可以通过SimpleAudioEngine::sharedEngine()方法来获取音频播放的引擎,然后调用对音频相关的操作方法就可以了,那么这个是非常简单的. 在Cocos2D-x For WP8里面的要使用音频播放的API,我们需要把CocosDenshion这个项目添加到我们的游戏项目里面去,然后添加引用.如下图所示: 需要注意的是如果发现在编译的时候会出现下面的错误,那么通常是因为没有添加CocosDenshionWindo…
最近<宠物联萌>在三星App上发布遇到一个问题:如果用户在锁定屏幕时解锁解到一半时取消解锁,这时用cocos2d-x开发的游戏就会出现游戏Bgm会恢复播放,但手机屏幕仍然是锁屏状态的Bug. 简述情况: ·游戏运行平台:Android ·Cocos2d-x引擎版本:cocos2d-1.0.1-x-0.13.0-beta ·问题出现操作:Android手机在锁屏状态下,玩家解锁解到一半时取消解锁(用圆环锁比较容易重现) ·是否经过测试:已测试,暂无发现问题 遇到Bug后初步分析了原因,估计是因为…
背景音乐播放暂停与继续似乎我们很少使用,事实上也正是如此,背景音乐播放暂停与继续实例代码如下: SimpleAudioEngine::getInstance()->pauseBackgroundMusic(); SimpleAudioEngine::getInstance()->resumeBackgroundMusic(); 它们的调用一般情况下是在游戏退到后台时调用暂停函数resumeBackgroundMusic(),然后在回到前台时候调用继续函数pauseBackgroundMusic…
停止背景音乐播放代码放置到什么地方比较适合呢?例如:在HelloWorld场景中,主要代码如下: bool HelloWorld::init() { return true; } void HelloWorld::onEnter() { Layer::onEnter(); log("HelloWorldonEnter"); } voidHelloWorld::onEnterTransitionDidFinish() { Layer::onEnterTransitionDidFinish…
背景音乐的播放与停止实例代码如下: SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/Jazz.mp3", true); SimpleAudioEngine::getInstance()->stopBackgroundMusic("sound/Jazz.mp3"); 背景音乐的播放代码放置到什么地方比较适合呢?例如:在Setting场景中,主要代码如下: bool Setting::…
前段时间移植一个页游到手游,原先页游的项目里面有1000+的Flash人物,宠物动画,特效. 这要是全部重新做一遍,还不累死人?所以就想干脆直接在Cocos2d(x)里面播放SWF文件.(包括场景,过场动画,人物.宠物actions) 思路如下: 解析swf再把swf里面的各种tag,sprite用opengl es来绘制. 以前在MP4时代,就做过Flash相关工作,但是那个年代还cpu还不支持opengl es,内存还是16M. 所以必须重新学一遍opengl es, NeHe, 红书,蓝书…
最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.cocos2dx.lib下的 Cocos2dxRenderer.java 中添加native方法 public static native void setIsPause(boolean isPause); 2.在Cocos2dxRenderer.java对应的Java_org_cocos2dx_li…
前言 把互联网翻了个遍, 所有的方法都千篇一律. 用循环去判断! 很神奇的是, 几乎所有博文举的例子, 连数字都是一样的. 这么一个效率烂成渣的方法, 居然被普遍赞同. 以下是广为流传的方法. ; i < ; i++) { //5张图5帧 if(prite->displayedFrame() == anim->getFrames()->getObjectAtIndex(i)) { //这个i返回的只是一个索引,如果帧数是从1开始计算就要+1 currentAnimIndex = i…
 这几天在看控件类,临时没有想好实际运用的方向.单纯的创建网上已经有非常多这方面的样例,我就不写了.接下来是学习精灵类.精灵类若是单独学习也是非常easy.于是我加了一些有关动画方面的知识点与精灵类一起使用.让精灵播放简单的帧动画. 首先我们准备好动画素材,我在网上下了一个小游戏.将里面的素材做成了png和plist大图以供程序调用.我是用TexturePackerGUI来生成plist的.我选的是一个简单的待机动作,我们的目的就是让这张图动起来~ 第一种方式:使用CCSpriteFrame…
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=545 很久以前写的一个2dx播放MP4视频的教材,有网友反映已经不能用了,今天晚上写了个简单的2dx播放视频类.使用的是cocos2dx 3.0. 类说明:LHVideoPlayerImplCpp.h/mm // cocos2dx中使用的播放MP4接口LHVideoPlayerImpl.h/m // videoPlayer的oc接…
1.此问题在cocos2dx 3.13/3.14版本(其它版本没有测试过)在Android7中使用AudioEngine的play2d函数播放音效时出现. 调试时出现如下提示: 2.论坛中相关讨论帖地址:http://forum.cocos.com/t/android7/44119 3.解决办法: 将cocos2d-x\cocos\audio\android\AudioPlayerProvider.cpp中的getSystemAPILevel() < 17都改为getSystemAPILevel…
版本:cocos2dx 2.2.6 IDE: VS2012 语言:C++98 CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("walk.plist"); CCSprite* pSprite = CCSprite::createWithSpriteFrameName("zzlx1.JPG"); pSp…
简介 Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果.动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画. 我们使用Animation类描述一个动画,而精灵显示动画的动作则是一个Animate对象.动画动作Animate是精灵显示动画的动作,动画与动画动作的关系如同CD光盘与CD播放机的关系,前者记录了动画的内容,后者是播放动画的工具,它由一个动画对象创建,并由精灵执行.…
在Cocos2dx中播放背景音乐是一件非常easy的事情,就一行代码,可是首先要导入Cocos2dx的音频引擎cocosDenshion. cocosDenshion对cocos2dproject提供了非常方便的声音素材的调用和管理. 同一时候要把要播放的音乐放到project的资源目录才干正确播放 与<[Cocos2dx]Windows平台下Cocos2dx 2.x的下载.安装.配置.打造自己的Helloworld>(点击打开链接)相同通过例如以下的Python命令.创建一个BGMproje…
大部分游戏里有很多个场景,场景之间需要切换,有时候切换的时候会进行背景音乐的播放和停止,因此对这块内容进行了总结. 场景切换生命周期 场景切换用到的函数: bool Setting::init() { if( !Layer::init() ) { returnfalse; } log("Settinginit"); ...... returntrue; } void Setting::onEnter() { Layer::onEnter(); log("SettingonEn…
"SimpleAudioEngine.cpp": void SimpleAudioEngine::playBackgroundMusic(const char* pszFilePath, bool bLoop) { if (! pszFilePath) { return; } sharedMusic().Open(_FullPath(pszFilePath).c_str(), _Hash(pszFilePath)); sharedMusic().Play((bLoop) ? -1 :…
IDE: VS2013 版本:cocos2dx 3.3.6 语言:c++ 11 3.x版本改动与2.x版本相比改动很大,几个比较明显的点就是所有带cc的前缀没有了,然后一些获取类型的函数名称加了get,ccobject变成了ref,也是不懂为何要蛋疼的改名字. SpriteFrameCache* cache = SpriteFrameCache::getInstance(); cache->addSpriteFramesWithFile("gold.plist"); Vector…
版本:cocos2dx 2.2.6 IDE: VS2012 语言:C++98 美术资源一共有两段动画的序列帧,一个是手绘马行走图,一个是分子人行走图. 程序要实现的目的就是在同一个位置,点击按钮可以实现2段动画的切换. 因为动画最终是通过sprite的runAction执行的,所以我做了一个封装,返回一个带动画的精灵. CCSprite* HelloWorld::createAnimateSprite( int start, int end, CCString* startFrame, CCSt…
我先描写叙述一下这个问题: 拿之前做的卡牌游戏来说.假设一方场上有3张牌,那么肯定要以一种顺序来播放攻击动画.我是以从左到右的方式. 我的解决方案是向每张牌都传递一个延时參数,然后在runAction的时候使用DelyTime,可是这样的方法太麻烦. 如今说说更好的方法吧: 基本思路是vector与callfunc相结合. 一: 先在类里定义数据和函数 std::vector<std::vector<int>> v_action;//储存精灵TAG和动画TAG的容器 void pu…
今早发生了一件事让我感觉特气愤!去年的这个时候,我和小伙伴们一起在操场上拍毕业照,之后有个当地报纸的记者来我们学校取材,看到我们后打算给我们拍几张创意张扬点的毕业照.之后呢,照片出来了,拍的效果大伙都非常惬意,最后这张照片还被作为湄洲日报和校报的版面.这是我大学认为最骄傲的几件事之中的一个.但是,就在今天,我发现这张照片被某市的男科医院拿去当杂志的插图,文章标题还是治疗男人xxx(不准笑,我非常严肃的).尼玛的,我看到后二话不说直接打电话到那医院大骂一通,好在他们的认错态度还算诚恳,所以我也没过…
Code // on "init" you need to initialize your instance bool HelloWorld::init() {      bool bRet =  false;      do     {          //////////////////////////////////////////////////////////////////////////          // super init first          ///…