
cocos2dx
文章平均质量分 59
布谷的鸟
冰冻三尺非一日之寒
展开
-
cocos2dx-js 实现自定义富文本
在做游戏的时候,有一个特殊的需求引擎没有直接提供。一段Label有一部分是其他颜色,例如:“一只 优雅 的攻城狮”上面这个Label,一般想到的常规方式是 用四个Label拼接,放到不同的位置。其实RichText是提供了这种功能的,用设置好的四个RichElementText就能实现。但是相对来说比较繁琐,而对于策划来说比较难懂,后来协定的做法是用原创 2016-08-10 14:21:27 · 2764 阅读 · 0 评论 -
Cocos2d 3.X将JS转成JSC文件
在项目下,按住shift键,然后鼠标右键-“在此处打开命令窗口”(或者你自己输入绝对路径) 使用cocos命令//JSC保存到同级目录cocos jscompile -s frameworks\js-bindings\bindings\script -d frameworks\js-bindings\bindings\script//JSC保存到新目录cocos jscompile -s x原创 2017-07-11 11:19:49 · 4017 阅读 · 0 评论 -
cocos2d-js 3.11的运行黑屏错误 之No file found at script/jsb_prepare.js Possible missing file.
简单记录下3.11.1的JSB版本的运行错误。用命令行创建了3.11.1的test空项目,然后用命令 cocos run -p win32去运行,出来是黑屏的。 先打包成Android然后再在模拟器中运行也是一样的,此时的我一脸懵逼!然后只能去VS中看调试信息,就看到了 No file found at script/jsb_prepare.js Possible missing file.原创 2017-06-12 17:27:41 · 4385 阅读 · 1 评论 -
cocos2d 游戏运行时保持常亮即让手机不自动锁屏
游戏运行时,默认情况下的打出来的包,若长时间不操作,手机就会自动锁屏。 因产品需求,这里加一下配置,让游戏在运行时保持常亮状态。针对IOS: 1.找到工程下\frameworks\runtime-src\proj.ios_mac\iOS路径下的AppController.mm这个文件2.在didFinishLaunchingWithOptions方法中添加[[UIApplication shar原创 2017-07-17 16:17:08 · 1639 阅读 · 0 评论 -
cc.TableView之 TableViewCell带有点击事件时 滑不动的问题
造成点不动的原因是,TableViewCell里的button,或者是cc.Widget有触碰事件。 事件是默认吞噬的,且优先级较高。会吞噬掉TableView的滑动事件解决方法: 将有触碰事件的节点或者是button调用button.setSwallowTouches(false)原创 2017-08-09 11:57:48 · 2654 阅读 · 0 评论 -
cocos2dx 3.x VS下运行调节音量无效的问题
最近VS下跑自己的游戏,发现音乐的开关一直有问题,就是无论设置音量是1还是0,音乐和音效一直可以播放。我用的版本是cocos2dx 3.11.1,首先以为是自己的业务逻辑有问题,然后去仔细检查,发现没问题,而且VS下也没报任何错误。关键是打出来的Android和IOS包都没问题,内心OS:到底TM发生了什么?然后就很容易想到了可能针对win32的处理不一样吧,就找到了项目路径下的framewor原创 2017-08-18 14:58:52 · 1298 阅读 · 0 评论 -
cocos2dx 3.x TableView多行多列的使用
前言:当学会使用之后,你会爱上这个控件,无法自拔! 一直使用cc.ScrollView会遇到一个瓶颈,就是数量过多时,滑动肯定会卡。因为它是一开始就创建了所有需要滑动的节点。 而cc.TableView则不一样,它仿造了IOS的UITableView的方式,只创建界面上所看到的TableViewCell,滑动的时候,消失的Cell放入空闲数组,需要显示的Cell就从空闲数组取,直到空闲数原创 2017-08-18 18:36:36 · 3619 阅读 · 0 评论 -
cocos2d 3.11.1 关于Android包第一次打开按Home键挂起再进入的问题 too much recursion
问题描述,打好安卓包点开包,用手机系统自带程序安装器安装后,会有一个“完成”和“打开”按钮,点击打开程序后,再按Home键退出程序,回到手机桌面再点击应用图标进入,程序直接卡死,点游戏界面上的任何按钮都无反应!!!eclipse上报出一连串“too much recursion”,此时的我一脸懵逼。 经过反复测试,只有第一次这样做会出问题,且如果不点击那个“打开”按钮,而是安装完程序后,回主界面使原创 2017-08-21 12:09:32 · 592 阅读 · 0 评论 -
cocos2d 3.11.1使用粒子效果引起的EXC_BAD_ACCESS问题
最近准备构建IOS的包,在运行时进入游戏场景之前直接crash掉了。在CCEAGLView-ios.mm文件中抛出了一个EXC_BAD_ACCESS的错误。 错位定位的代码位置是#endif // __IPHONE_4_0 if(![context_ presentRenderbuffer:GL_RENDERBUFFER]) {// CCLOG(@"coc原创 2017-08-24 16:45:34 · 2163 阅读 · 0 评论 -
cocos2dx 多人小游戏时间同步问题(简单版)
在多人版的游戏开发过程中,我们会经常碰到这样一个问题:由于每个客户端网络环境差异导致接收服务器消息的时间不同,就会导致多个客户端呈现的画面不同(即画面不同步),例如:以彩期开奖为例,客户端A已经收到开奖结果的推送了,但客户端B没有收到,如果不做任何处理,会导致后面画面的差异越来越大。因为网络环境的差异是一个客观的问题,所以我们并不能保证每个客户端能在同一时间收到服务器推送的消息。但我们可以在代码逻辑原创 2017-01-17 17:11:46 · 3568 阅读 · 0 评论 -
cocos2d H5加载时崩溃问题
最近手头上一个cocos H5游戏,需求是根据后端传来的数据进行模拟角色打斗。角色不多,但是有很多全屏的技能动画,关键这些人物动作和技能全部是用帧动画来实现的。全部动作加起来应该有近两千的精灵帧吧。如果全部加载的的话,内存肯定会爆掉导致浏览器崩溃。首先能想到的肯定是动态加载,即主场景只加载主场景的资源。这样试过之后,在浏览器上仍然是在loading的时候就崩溃,起初我以为是调用cc.loader原创 2017-06-02 17:08:43 · 2171 阅读 · 1 评论 -
Cocos2dx 使用Shader使精灵变灰
使用方法:auto program = CCGLProgram::createWithFilenames("gray.vsh", "gray.fsh"); //装配一个shader文件program->link();program->updateUniforms();spr->setShaderProgram(program);this->addChild(spr);gray.vsh:attri原创 2017-06-16 11:21:53 · 1487 阅读 · 0 评论 -
Cocos2dx 3.X Label的换行
很多项目中都会有Label换行的需求,之前自己还手动写了个换行的处理。但才发现3.X引擎已经帮我们做了这件事。而且用法很简单针对LabelTTF(如果你用的ccui.Text,调用getVirtualRenderer(),返回值就是labelTTF)再对LabelTTF调用setDimensions方法即可,来看下源码/** * Set Dimensions of cc.LabelT原创 2017-05-25 11:07:34 · 2076 阅读 · 0 评论 -
-canOpenURL: failed for URL: "fbauth2:/" - error: "(null)"
Facebook SDK的相关问题 在接FB登录的时候,真机上IOS9.0之前登录都没问题,IOS9.0之后首先会有个-canOpenURL: failed for URL: “fbauth2:/” - error: “(null)”的警告,官方文档说可以忽略。 如果想去掉这个警告信息,可做如下操作:如果使用 iOS SDK 9.0 重新编译应用,且目前的 SDK 版本为 4.5 或更低版本,请原创 2016-08-11 18:06:45 · 2876 阅读 · 0 评论 -
cocos2dx-js web适配(重点在后面)
一、 cocos 手机游戏常用的屏幕适配方式: 1、ResolutionPolicy::SHOW_ALL屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(小)者作为宽、高的缩放因子。保证了设计区域全部显示到屏幕上,但可能会有黑边。2、ResolutionPolicy::EXACT_FIT屏幕宽与设计宽比作为X方向的缩放因子,屏幕高与设计高比作为Y方向的缩放因子。保证了设计区域完全铺满屏幕原创 2016-09-14 14:57:01 · 2014 阅读 · 0 评论 -
cocos2dx五种适配策略
1、ResolutionPolicy::SHOW_ALL屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(小)者作为宽、高的缩放因子。保证了设计区域全部显示到屏幕上,但可能会有黑边。2、ResolutionPolicy::EXACT_FIT屏幕宽与设计宽比作为X方向的缩放因子,屏幕高与设计高比作为Y方向的缩放因子。保证了设计区域完全铺满屏幕,但是可能会出现图像拉伸。3、ResolutionPoli原创 2016-08-24 15:56:59 · 2609 阅读 · 0 评论 -
Cocos2dx 小技巧 Label的换行(js实现)
项目在做聊天的时候会用到。因为用setContentSize方法太局限! 因为 :假如我们做的是一个类似微信的聊天对话框,这种对话框一个特点就是会随着你文字长度的改变而改变。 而如果我们在这里讲Label的尺寸给写死了,那对话框也就跟着失去它的灵活性了。LabelTTF有一个好处就是会在字符串中有”\n”的地方换行,利用这个特点可以写一个自动换行的函数. 根据传入一行的长度和字串内容,来重新拼原创 2016-12-26 11:37:25 · 1009 阅读 · 0 评论 -
Cocos2dx 小技巧 Label的换行(js实现)
项目在做聊天的时候会用到。因为用setContentSize方法太局限,因为 :假如我们做的是一个类似微信的聊天对话框,这种对话框一个特点就是会随着你文字长度的改变而改变。而如果我们在这里讲Label的尺寸给写死了,那对话框也就跟着失去它的灵活性了。LabelTTF有一个好处就是会在字符串中有"\n"的地方换行,利用这个特点可以写一个自动换行的函数根据传入一行的长度和字串内容,来重新拼接字原创 2016-08-09 16:21:50 · 2950 阅读 · 0 评论 -
cocos2dx-js 格式化字符串
之前cocos2dx-js是没有格式化字符串的API的,以前自己还手动写了一个。 现在发现有了,做法和我之前用的正则表达式去替换没什么大的差异。用法:/** * A string tool to construct a string with format string. * for example: * cc.formatStr("a: %d, b: %s", a, b); *原创 2017-01-06 12:10:35 · 2415 阅读 · 0 评论 -
cocos2dx 用序列帧创建帧动画
游戏中常常用到一些动画,若是比较简单的动画则可通过Flash导出动画的所有序列帧。项目中则可用这些序列帧创建出动画。js代码示例:var frameAni = new cc.Sprite();frameAni.setPosition(cc.p(frameAni .width / 2, frameAni / 2));frameAni.initWithSpriteFrameName("frame_原创 2017-01-06 17:37:42 · 3069 阅读 · 0 评论 -
cocos2dx 之Action变速运动
在cocos2d Action中,用CCSpeed可以改变动作的速度,但实际上只是按比例改变目标动作的速度。 在做Action动作时,如果你直接去改变目标动作的运动时间,时间的长短决定了速度,其实就是按比例修改其运动的速度。那么CCSpeed的用处并不是很大,一般项目中不太喜欢用,还不如直接按比例的调整时间来得利索。而在实际项目中,变速运动的需求相对来说还是比较多的。比如幸运大转盘的转动,或者小车原创 2016-12-31 15:20:36 · 5581 阅读 · 1 评论 -
cocos2d 3.11获取机型和系统版本号
原生游戏无论是提供给后端统计玩家机型信息、或者是方便给测试提供信息都会在游戏注册或者登录时统计设备型号以及系统型号。 由于这一需求并不是所有用户都需要,cocos并未提供相关API去获取信息。 这里分别针对IOS和Android去获取机型和系统版本号。这里使用的是引擎是3.11.1版本、js语言 使用JSB分别调用OC和Java的方法来实现。1.首先在platfo原创 2018-02-07 17:49:38 · 3731 阅读 · 0 评论