cocos2d-x
zhaixh_89
这个作者很懒,什么都没留下…
展开
-
tolua++原理理解
1.tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,userdata的值,是c++对象的地址。userdata的metatable,是一个tolua++建立的,记录了userdata对应c++类型信息的表格,包括导出的成员变量、成员函数等信息。对于成员变量的读取赋值,tolua++是在metatable里新建了.get和.set两...转载 2018-10-09 16:02:34 · 1664 阅读 · 0 评论 -
数据结构CCDictionary
CCDictionary在cocos2d-x中被大量的应用,比如CCTexureCache,CCSpriteFramCache等等。1.实现原理1.1.uthashCCDictionary是使用uthash实现的,而过时的CCMutableDictionary则是使用STL实现,就效率而言CCDictionary至少提升了两倍,而且CCDictionary并没有转载 2014-06-11 17:22:47 · 605 阅读 · 0 评论 -
利用CCClipingNode做游戏遮罩
新手引导是游戏中必备的(除了奇葩的MT用一段动画开始),也是玩家对游戏的第一印象,重要性不言而喻。一般采用的遮罩的形式来突出引导重点,同时屏蔽其他功能。这里简单的介绍一下游戏遮罩的实现,并给出一个示例。1.CCClipingNodeCCClipingNode是一个可裁剪节点,简单理解:(1)首先它是一个节点,继承于CCNode,所以它可以像普通节点一样放入CCLayer,CCS转载 2014-05-26 14:05:21 · 762 阅读 · 0 评论 -
CCClippingNode遮罩解析
CCClippingNode在做新手引导的时候经常用到,所以要想做个新手引导就得先学学这个,当然它的功能不会仅限于此,明白了原理以后你可以自由发挥啊。在网上看到不少的文章,但是说的不够明白,我今天好好给大家说说吧,这里只说下原理,下次利用这个做个新手引导出来。需要明确的一点就是CCClippingNode本质上是一个节点,什么是节点,节点就是可以存放东西,它也可以放到其他的节点上。大家在新手引转载 2014-05-23 11:39:22 · 936 阅读 · 0 评论 -
cocos2dx 常用函数和宏定义
最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数……用一些比较原始、低效率的方法……甚至是copy / paste………………。……。这不科学啊!你不能这么勤劳啊转载 2014-05-14 10:59:58 · 483 阅读 · 0 评论 -
触屏事件(单点触屏)
cocos2d-x中的触屏事件分为多点触屏和单点触屏,而多点触屏用到的地方并不是很多,所以先主要记录一下单点触屏的用法和基本原理。一般经常用到的触屏的情况有两种:一种是Layer统一接收触屏消息,然后由程序根据需要分发给不同位置的精灵;另一种情况是自定义一个可以接收触屏消息的Sprite,比如类似于Button功能的Sprite,这就需要在定义Sprite的时候就要定义好触屏所触发的操转载 2014-05-20 12:32:31 · 560 阅读 · 0 评论 -
一种可行的系列动画播放方式
这篇介绍的就真的是纯技巧性的东西了,没有啥知识点。先几句自问自答,又名:抛砖引玉。1、如果要让你个精灵先移动到某个坐标,然后再旋转,该如何实现呢?答:当然是使用Sequence了,疗效过,效果好!2、如果想让一个对象的动画播放完后,另外一个对象接下去播放答:这个的实现方法就比较多了,用TargetedAction 或者 Callfunc 等,都是可以的;3、如果想让多个对象安卓转载 2014-05-19 11:20:28 · 518 阅读 · 0 评论 -
cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案
游戏暂停界面:cocos2d-x中游戏暂停界面提供的思路是用pushScene()和popScne(),即推进和弹出场景,当游戏暂停时,推进(pushScene())暂停场景,之前运行的场景将会自动暂停,然后我们可以在暂停场景中操作,如Resume,ReStart,Quit等,当我们不再需要暂停场景时,可以popScene()将暂停场景弹出。(场景就像一张纸,我们推进一个场景,相当于在这张纸上转载 2014-05-10 19:39:54 · 951 阅读 · 0 评论 -
CocoStudio sample讲解 SampleCollision骨骼动画与简单碰撞
CocoStuido sample----SampleKeyFrameAnimation源代码地址: https://github.com/chukong/CocoStudioSamples 大家可以预先下载这个源代码, 等下要用到里面的图片资源哦 。在上面两篇教程中, 我们分别学习了序列帧动画( CocoStudio sample讲解 SampleFrameAnimation转载 2014-05-08 12:26:01 · 927 阅读 · 0 评论 -
cocos2d-x 骨骼动画初步了解
上一个项目用的是cocos2d-x2.0.4的模板,并没有很好的支持骨骼动画,用的只是别人写的骨骼插件,但是并不是很好的与cococs2d匹配。现在终于可以看到有原配了(添加图片资源:CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("armature/Cowboy0.png","armature/C转载 2014-05-07 13:25:34 · 806 阅读 · 0 评论 -
如何优化cocos2d/x程序的内存使用和程序大小
再次感谢原创者:Steffen Itterheim,原创博客原文地址:http://www.learn-cocos2d.com/2012/11/optimize-memory-usage-bundle-size-cocos2d-app/译者:在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题转载 2014-05-28 20:02:52 · 1350 阅读 · 0 评论 -
Cocos2d-x 3.0 触摸事件处理机制
在本篇文章中,我们一testCppLim原创 2014-08-02 15:18:20 · 632 阅读 · 0 评论 -
利用颜色混合ccBlendFunc实现遮罩效果
每一次完成一个学习完成一个功能,过了一段时间忘记当初是如何理解并实现的,因此就想记录下来以后顺手回来翻看对于颜色混合的解释,网上已有大神做了解释,这里就直接拿来使用了,概念如下1、概念 “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。 说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色...转载 2017-06-26 15:50:42 · 1917 阅读 · 0 评论 -
objective-c与cocos2d-x的互相调用实现获取麦克风音量大小
为了在游戏中增加一些效果,即玩家吹口气对敌人造成伤害等等之类的功能,需要实施的获取ios设备的麦克风音量,为此,在网上找了好多资料,终是未能满足要求,最后在这位朋友扬名的博客上找到了对应的实例,同时也感谢扬名的分享,这里给出链接http://www.cnblogs.com/pure/archive/2013/03/10/2933440.html,望各位朋友共同学习。头文件如下:#impor原创 2014-12-04 14:12:17 · 2601 阅读 · 0 评论 -
CCTableView用法总结
近段时间,由于项目需要做一个任务列表,于是就想到了CCS原创 2014-11-08 18:44:20 · 1178 阅读 · 2 评论 -
关于进度条的使用理解(待续)
先定义一个进度条 Sprite* sp = Sprite::createWithSpriteFrameName("pvpStoneProgress.png"); m_progress = ProgressTimer::create(sp); addChild(m_progress, 100); m_progress->setType(ProgressTimer::T原创 2015-06-30 14:57:45 · 490 阅读 · 0 评论 -
cocos2dx-3.2 ClippingNode 遮罩
可以根据一个模板切割图片的节点--ClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,而新特性中提供的ClippingNode最大的不同之处就是裁减将不仅仅局限于矩形,可以根据任何形状进行裁减,而你要做的只是给一个“裁减模板”,首先来看这个类的常用函数(需要说明的是,这里介绍的函数只是这个类转载 2015-02-09 17:15:05 · 776 阅读 · 0 评论 -
cocos2d-x 3.3 Sprite3D人物换装代码解析
Sprite3D与Sprite相似,只不过它是3D的。你可以使用内置的create函数初始化一个Sprite3D对象。auto sprite = Sprite3D::create(fileName);sprite->setScale(4);sprite->setRotation3D(Vec3(0,0,0));目前 Sprite3D 支持以下三种格式obj:obj是通过3原创 2014-12-02 14:55:47 · 4023 阅读 · 3 评论 -
cocos2d-x网络编程
在这里我整理了以往自已用的一些关于HTTP和Socket编程资料,当然也有一些自已对网络编程的理解首先说说HTTP与Socket概念性的一些认识:Socket通常称为“套接字”,用于描述IP地址和端口。套接字类型分为:1>,流式套接字:提供面向连接,可靠的数据传输服务,数据无差错,无重复的发送,且按顺序接收,基于TCP协议2>,数据报式套接字:提供无连接服务,数据以独立形式发关转载 2014-11-27 16:04:50 · 717 阅读 · 0 评论 -
cocos2d-x 3.0 为字体添加黑边和阴影
zhi Size shadeOffSet(5.0,5.0); //定义字体 FontDefinition shadeTextDef; shadeTextDef._fontSize = 100; shadeTextDef._fontName = std::string("楷体"); shadeTextDef._fontFillColor原创 2014-08-18 09:49:18 · 2876 阅读 · 0 评论 -
cocos2d-x3.0 Xcod下错误解析
错误一:9 duplicate symbols for architecture i386原创 2014-08-20 12:06:24 · 587 阅读 · 0 评论 -
使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画
1 CocoStudio 简介2 环境搭建与配置3 序列帧动画的创建步骤4 如何在 Cocos2d-x 中运行其动画5 骨骼动画的创建1 CocoStudio 简介CocoStudio 是由 Cocos2d-x 官方推出的一个专门针对 Cocos2d-x 游戏开发的免费工具集,目前正在开发阶段,且日益完善之中!既是工具集,当然集成了现有各零零散散工具的功能,并且不断扩充,包转载 2014-05-07 14:02:28 · 596 阅读 · 0 评论 -
在cocos2d-x中使用DragonBones实现骨骼动画
重要更新 2014-04-28DragonBones 开发组已经对 DragonBones 进行了官方的 C++ 移植,很多问题都不复存在了。详情看这里 DragonBones 官方C++版本 for cocos2d-x 。基础知识要看懂本文,你需要了解骨骼动画(或称关节动画)是什么,以及DragonBones是什么。下面提供了一些资料:Skeletal Animation转载 2014-05-07 13:59:11 · 1746 阅读 · 0 评论 -
随机数的获取
本来上午是要转载一篇看起来还不错的博客,被cocos2dx官方微博推荐过。谁知道早上打开链接时那篇博客已经转为私密了。早知道昨晚就应该复制一下内容,今天厚脸皮的来篇原创岂不妙哉。哈哈。1、简单的随机数用法:CCRANDOM_0_1 示例如下:int HelloWorld::getRand(int start,int end){ float i = CCRANDOM_0_1()*(e转载 2014-05-07 11:50:53 · 642 阅读 · 0 评论 -
ccBlendFunc光效果
// 黑暗中的带背景图片纹理的光圈~ // ccBlendFunc tmp_oBlendFunc = {GL_DST_COLOR, GL_ZERO}; // 黑暗中的黄色光圈(前面表示upper,后面表示lower)~ // ccBlendFunc tmp_oBlendFunc = {GL_ONE, GL_ZER转载 2014-04-15 19:07:58 · 689 阅读 · 0 评论 -
粒子效果
粒子编辑器可以很方便的生成我们需要的效果,在Windows平台上,现在免费的只有一款软件ParticleEditor。下载地址:http://pan.baidu.com/share/link?shareid=1310206589&uk=3189484501 在cocos2d-x引擎中,粒子系统使用CCParticleSystem来表示,又分为两大类,重力式粒子系统CCParticl转载 2014-03-31 09:14:52 · 661 阅读 · 0 评论 -
世界坐标系,本地坐标系,opengl坐标系,屏幕坐标系
1.bool HelloWorld::init() 2.{ 3. bool bRet = false; 4. do 5. { 6. 7. CC_BREAK_IF(! CCLayer::init()); 8. //opengl的坐标系和世界坐标系相同,都是以屏幕左下角为原点,向右为x轴的增加方向,向上为y轴的增加方向 9转载 2014-03-18 09:23:34 · 854 阅读 · 0 评论 -
Cocos2d-x学习(四):带光标的输入框
cocos2d-x为我们提供了一个跨平台的输入框,CCTextFieldTTF,初看时感觉提供的功能很少,当看到tests中TextInputTest这个例子的时候,感觉它的使用还真是很复杂,其原因无非是一些设置和判断的繁琐。不过话说回来了,输入框最主要的是跨平台监听输入,而不是样式!至于我们想要做的,就是根据游戏的需要相对封装一个简单的输入框而已!今天我就以一个简单的带光标的输入框为例子,简转载 2014-03-18 09:22:12 · 827 阅读 · 0 评论 -
Cocos2d-x官方中文文档
基本知识导演,场景,层,以及精灵的介绍 Director, Scene, Layer and Sprite 【丫头】已完成已查收COCOS2D-X坐标系详解 Coordinate System [shiren1118]定时器SCHEDULERH和TIMER CALLBACK Scheduler and Timer Callback [shiren1118]转载 2014-03-17 10:38:08 · 824 阅读 · 0 评论 -
cocos2d-x学习笔记-触屏事件详解
游戏跟视频最大的区别就是互动,玩家可以操控游戏中的角色,现在的移动设备几乎人手一台,基本上全部都是基于触屏操作的,今天就来学习一下cocos2d-x是怎么实现对触屏操作的处理的。1.首先来了解一下相关的几个类、处理触屏事件时操作和执行的流程CCTouch:它封装了触摸点,可以通过locationInView函数返回一个CCPoint。CCTouchDelegate:它是触摸事件委托,就转载 2014-03-17 10:18:35 · 510 阅读 · 0 评论 -
【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/cocos2dx-v2-0/997.html 前段时间cocos2dx更新了最新版本cocos2d2.0x2.0.2,也从这个版本开始对于资源加载与管理都改变了策略。在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源方式,对于图片名后添加-hd,-ipad,转载 2014-03-13 10:55:51 · 802 阅读 · 0 评论 -
cocos2d-x新建项目
步骤一: 打开cmd 进入cocos2d-x 目录,运行build-win32.bat 继续cmd 中进入cocos2d-x\template\msvc 目录,运行InstallWizardForVS20xxExpress.js 和 InstallWizardForVS20xx.js 最后cmd 中进入cocos2d-x 目录,运行install-temp转载 2014-03-07 18:33:09 · 676 阅读 · 0 评论 -
cocos2d-x学习笔记-CCAction(动作)
上一篇我们学习了CCNode类(实体),但游戏单单只有静止不动的实体肯定不行,得让它们执行一些动作,有丰富的动画效果,CCAction及它的子类就是起着这样的作用,它是通过改变这些实体的属性实现的,下面是它的类结构图。从结构图可以看出,动作类的基类是CCAction,通过继承它可以实现很多种动作。CCFiniteTimeAction:有限次动作执行类,就是按时间顺序执行一系列动作,执行完后转载 2014-03-07 17:36:01 · 661 阅读 · 0 评论 -
cocos2d-x学习笔记番外篇:地图滚动代码
读了cocos2d-x手机游戏开发作者给的源代码,感觉里面那个地图滚动代码,不合自己口味,于是拿以前开发时用的代码给改掉了。 void GameScene::setSceneScrollPosition(cocos2d::ccTime dt) { CCPoint position=hero->getPosition(); CCSize screenSize = CCDire转载 2014-04-02 21:14:16 · 813 阅读 · 0 评论 -
cocos2d-x学习笔记:记录存储1:CCUserDefault
一、简述CCUserDefalt作为NSUserDefalt类的cocos2d-x实现版本,承担了cocos2d-x引擎的记录实现功能。他的接口非常简单。bool getBoolForKey (const char *pKey, bool defaultValue=false) //Get bool value by key, if the key doesn't exist,转载 2014-04-02 21:21:50 · 603 阅读 · 0 评论 -
cocos2d-x学习笔记(持续更新)
接受触屏事件的优先级是值越小,响应触屏事件的优先级越高Z值越大,越外面粒子系统设计工具:Particle Designer软件 目前只支持MAC平台 导出 plist文件地图设计工具:Tiles 目前有两个版本,一个是Java版本,另一个是QT版本 导出TMX格式文件图片编缉工具,将多个精灵整合成一个大图: 导出plist文件Zwoptex 两个版本,转载 2014-03-25 21:17:20 · 1119 阅读 · 0 评论 -
Cocos2dx 之retain ,release
因为功能和接口和objective-c版本的差不多,所以在内存管理上也采用objective-c引用计数的机制来实现内存管理。仔细看了一下cocos2d-x的源代码,确实写的很好,代码组织得很工整。它们所有类都是继承自CCObject, CCObject有retain(), release()和autorelease()等方法,和objective-c上的NSObject用法一致。每当CCObje转载 2014-03-25 21:07:45 · 854 阅读 · 0 评论 -
cocos2dx几种菜单旋钮(CCMenu)的建立以及播放按钮的切换效果
cocos2dx几种菜单按钮(CCMenu)的建立以及播放按钮的切换效果闲来无事,白白给大家分享一下一种菜单按钮的制作方法 1、CCMenuItemImage + CCMenu这是图片按钮菜单项,通过指定图片资源来创建菜单项,有点击效果哦,我们举个例子先 //创建图片按钮 CCMenuItemImage* pHome = CCMenuItemImage::create("ho转载 2014-03-25 20:56:07 · 724 阅读 · 0 评论 -
cocos2dx添加文本的三种方法及适用情况CCLabelTTF,CCLabelBMFont,CCLabelAtlas
今天白白继续跟大家分享一下cocos2dx添加文本信息的方法。cocos2dx中有三个类可以添加文本信息:CCLabelTTF,CCLabelBMFont,CCLabelAtlas。1、CCLabelTTFCCLabelTTF适合于一次性创建文本后基本上不再改变其显示信息的情况。因为CCLabelTTF可以使用setString()函数改变文字内容,而这个时候会创建一个新的open转载 2014-04-04 14:50:36 · 828 阅读 · 4 评论 -
cocos2dx三种定时器的使用以及停止schedule,scheduleUpdate,scheduleOnce
今天白白跟大家分享一下cocos2dx中定时器的使用方法。首先,什么是定时器呢?或许你有时候会想让某个函数不断的去执行,或许只是执行一次,获取你想让他每隔几秒执行一次,ok,这些都可以统统交给定时器来解决。cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce。了解其功能便会发现定时器真是太方便了,废话不多说,我们逐一学习一下。1、sc转载 2014-04-04 14:46:21 · 676 阅读 · 0 评论