cocos2d
这里的文章全部都是跟cocos2d游戏开发相关的内容
914406232
这个作者很懒,什么都没留下…
展开
-
luajit stack traceback() 显示不全
你如果搜这个问题,那么会有人告诉你下面的答案:#define LUA_IDSIZE 256 /* Size of lua_Debug.short_src. */确实,找到这个文件,修改这个宏定义的大小的确是解决这个问题的关键,但是没有人告诉你,为什么你改了之后并没有什么暖用,我就遇到这个了这个问题,不过也有可能是我们项目比较老了导致的,下面就说一下怎么解决这个问题吧。一般需要修改的文件是这个目录:cocos2d-x\external\lua\luajit\src\src\luacon原创 2022-04-06 11:56:32 · 3086 阅读 · 0 评论 -
MD5加密
MD5加密在网络游戏中会用到MD5加密,那么MD5是如何加密的呢?#ifndef AFC_MD5_H#define AFC_MD5_H#include //MD5 加密类class MD5_CTX {public: static std::string MD5String(const std::string& str); //变量定原创 2017-04-10 11:58:49 · 508 阅读 · 0 评论 -
TextField和EditBox的 区别
TextField和EditBox的 区别TextField:先添加头文件:#include "cocostudio/CocoStudio.h"#include "ui/CocosGUI.h"USING_NS_CC;using namespace cocostudio::timeline;using namespace cocos2d::ui; 先从cocoss原创 2017-03-01 15:50:58 · 12726 阅读 · 0 评论 -
中文显示乱码之解决办法
众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的。 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示。2.使用iconv库来解决。3。使用解析xml或者json文件来解决。这里推荐使用第三种方法来解决,因为比较简单方便,还能支持I18N国际化。下面我们来一一详细了解一下每种解决方案的具体实现:一、通过转换为UTF-8编码的翻译 2017-04-05 15:21:19 · 10547 阅读 · 0 评论 -
深拷贝和浅拷贝问题
下午遇到一个关于一个表的数值拷贝的问题,有点意思,不多说,直接上代码--记录玩家的信息 self._userInfo = {};for i=1,PLAY_COUNT do table.insert(self._userInfo,self._deskUserList:getUserByDeskStation(i-1))end这样拷贝的数据是深拷贝,原创 2017-08-07 19:43:42 · 679 阅读 · 0 评论 -
聊天系统实战记录
在写聊天系统的时候遇到几个问题,在这里记录一下,防止以后忘记。 1.在聊天系统中,有一个功能很常见,就是点击聊天层以外的地方,聊天层自动影藏,在C++里面或许很简单,但是在lua里面方法也很多,基本和c++一样,但就是语法不会,在这里记一下:local function touchCallback(event) local eventType = event.n原创 2017-06-28 17:40:45 · 560 阅读 · 0 评论 -
给一个node添加监听
一部分的代码:local eventDispatcher = self:getEventDispatcher() local listener = cc.EventListenerTouchOneByOne:create() listener:setSwallowTouches(true) function onTouchBegan(touch, even原创 2017-07-19 15:17:19 · 792 阅读 · 0 评论 -
关于json和csb文件读取的问题
#include "HelloWorldScene.h"//#include "cocostudio/CocoStudio.h"//#include "ui/CocosGUI.h"using namespace cocostudio;USING_NS_CC;//using namespace cocostudio::timeline;//using name原创 2017-03-07 14:41:45 · 760 阅读 · 0 评论 -
关于钻石太多的显示问题
啥也不说了,直接上代码: --格式化数字--超过6位数,截断万位,用万字替代--超过9位数,截断亿位,用亿字替代function FormatNumToString(num) num = num or 0 local s = num; local len = string.len(tostring(num));原创 2017-07-17 18:10:10 · 615 阅读 · 0 评论 -
解决汉字显示问题的一种方法:
解决汉字显示问题的一种方法: 在本地文件中添加一个txt文件,文件的格式是前面写序号后面写汉字的格式,然后再需要用到的地方直接读取本地文件中的文字再绘制上去。 --汉字字典 local tDictTable = {"Id", "Content"}local DictTableFilePath = cc.FileUtils:getInstance():fullPathF原创 2018-01-09 17:10:18 · 8572 阅读 · 0 评论 -
cocos2d-x多线程操作
先头文件定义:void threadA();再在.cpp文件中添加//1.引入头文件#include <thread> std::thread t1(&Login::threadA,this);//取Login的地址 t1.detach();//主线程和子线程互不影响 //t1.join();//阻塞主线程:执行子线程完了后才执行主线程...原创 2019-05-21 18:10:04 · 5347 阅读 · 0 评论 -
适配浅谈
关于适配,简单得介绍一下原理,就是游戏一般有2个窗口大小得设置,一个是屏幕大小另一个是设计屏幕大小,这2个其实很容易理解,但是在现实中,我们有得游戏设计得尺寸大小是 1280 *720 或者是 960*640 ,现在得手机屏幕越来越大,像素也是越来越牛批,导致1280*720根本铺不满整个屏幕了,这个时候就要用到一个适配了,这也是很多公司面试得时候喜欢问你得东西。下面得这种方案是我用到得一种,就是把所有得节点放到同一个背景上,然后把背景拉伸,再把背景上得所有得节点X坐标增加偏移量,这个偏移量是手机得屏幕大.原创 2021-04-16 15:41:51 · 4925 阅读 · 0 评论 -
玩家角色数据保存
local LocalConfig={} --PS.里面的值不要设置nil--LocalConfig.PlayerConfig={} --玩家配置--function LocalConfig.ReadConfig() LocalConfig.PlayerConfig=LocalConfig.DefaultConfig local T={} if cc.FileUtils:getInstance():isFileExist(getConfigPath()) then .原创 2021-09-14 13:49:17 · 191 阅读 · 0 评论 -
cocos2d-x3.X 在Windows下打包Android平台APK
---------------------------------------------------------------------------------文章由互联网整理原创 2017-03-01 11:11:30 · 441 阅读 · 0 评论 -
棋牌游戏效果
近期做了几款棋牌类游戏,在游戏中遇到了一些特效的问题,网上也很少有案例和源代码摸索了很久才搞定,故在这里简单的介绍一下自己的心得,留给以后的自己和后人,个人原创,不喜勿喷,如果你觉得有问题,欢迎提出。一. 扑克牌翻转特效。意思就是我们看到的一张扑克牌从中间翻转,由扑克牌的背面转向正面。首先我们去创建一张需要翻转的扑克牌:Auto mycard = UICard::crea...原创 2017-03-01 11:09:58 · 1086 阅读 · 3 评论 -
Cocos2d-lua环境搭配
Cocos2d-lua环境搭配 第一次用vs来搞lua的项目,所以搭建环境比较麻烦,在网上找了好久,但是却没有找到一个靠谱的,摸索了好久,在这里记录下我的心得吧。 1.首先新建一个cocos2d-lua的工程:找到cocos2d\tools\cocos2d-console\bin目录,然后按住shift键右击,在此处打开命令窗口,然后输入cocos new -p com.c原创 2017-04-10 16:20:52 · 3916 阅读 · 0 评论 -
cocos2d中文显示问题
头文件中添加模板:template class T>class HNPointerArray {T* t;public:HNPointerArray(T *t) : t(t) {} ~HNPointerArray() {delete[] t;t = nullptr;} T& operator [] (int i){assert原创 2017-04-05 15:01:49 · 1719 阅读 · 0 评论 -
cocos2dx项目导入到安卓中
1.通常情况下用cocos2d3.10新建的C++项目有二种,一种是预编译的一种是源代码的,预编译的项目只需要把项目中的proj.android导入到Eclipse中就可以直接打包了。 2.第二种是源代码的情况,这种情况下建立的项目如果直接导入到Eclipse中项目是会报错的,具体的报错地方是:遇到这种情况不要激动,报错的原因是因为项目的属性中没有添加cocos2d的lib原创 2017-03-07 13:27:45 · 648 阅读 · 0 评论 -
cocos2dx打包异常处理记录
打包异常处理记录 1.通常情况下用cocos2d3.10新建的C++项目有二种,一种是预编译的一种是源代码的,预编译的项目只需要把项目中的proj.android导入到Eclipse中就可以直接打包了。 2.第二种是源代码的情况,这种情况下建立的项目如果直接导入到Eclipse中项目是会报错的,具体的报错地方是:遇到这种情况不要激动,报错的原因是因为项目的属性中没有原创 2017-03-01 11:12:45 · 389 阅读 · 0 评论 -
cocos2d里面自带的多点触摸总结
CCScene* HelloWorld::scene(){ // 'scene' is an autorelease object CCScene *scene = CCScene::create(); // 'layer' is an autorelease object HelloWorld *layer = He原创 2017-03-16 15:56:29 · 1826 阅读 · 0 评论 -
cocos2d3.x在android下屏蔽多点触控
ios上很简单的在AppController.mm里[eaglView setMultipleTouchEnabled:YES]设置为NO,就是单点触控了,无需更改cocos底层代码; android上的做法是找到项目所引用的cocos引擎文件:Cocos2dxGLSurfaceView.java,找到onTouchEvent方法,在switch原创 2017-03-16 15:51:43 · 401 阅读 · 0 评论 -
cocos2dx新手打包问题
打包异常处理记录 1.通常情况下用cocos2d3.10新建的C++项目有二种,一种是预编译的一种是源代码的,预编译的项目只需要把项目中的proj.android导入到Eclipse中就可以直接打包了。 2.第二种是源代码的情况,这种情况下建立的项目如果直接导入到Eclipse中项目是会报错的,具体的报错地方是:遇到这种情况不要激动,报错的原因是因为项目的属性中没有原创 2017-04-01 17:26:58 · 1667 阅读 · 0 评论 -
cocos2d-lua学习笔记1
从上一篇搭建好了cocos2d-lua环境,迫不及待的尝试一下,下面是学习的时候的代码local MainScene = class("MainScene", cc.load("mvc").ViewBase)function MainScene:onCreate() -- add background image display.newSprite("Hel原创 2017-04-13 12:07:24 · 395 阅读 · 0 评论 -
cocos2d-3D模型 抗锯齿方法
随着cocos2d-x对3D特性的支持,很多开发者开始尝试在自己的游戏中载入3D模型,不过最近有些开发者表示不能接受3D模型显示时边缘的锯齿现象,特别是在windows上看着会更明显,这里给大家提供一个方法在不同平台上解决这个问题。Windows/Mac平台:在cocos/platform/desktop/CCGLViewImpl.cpp 然后在GLViewImpl::initWith原创 2017-11-27 14:14:54 · 3715 阅读 · 0 评论 -
cocos2d项目获取手机网络以及设置手机震动
cocos2d项目获取手机网络以及设置手机震动获取网络状态首先说明一下流程,c++通过jni调用java方法获取网络状态。 获取网络方法:/*添加获取当前网络状态方法 (返回参数说明:netType,-1:没有网络,1:wifi,2:手机网络。netLevel,1: None 2:poor 3:moderat...原创 2018-04-23 14:47:52 · 3689 阅读 · 0 评论 -
cocos2dx中protobuf的lua使用
一、protobuf常规使用。1 环境:win7-64机, 安装好python2.7,vs2013,cocos2dx-3.1.1,protobuf-2.6.12 准备:protobuf 下载地址:官方 https://github.com/google/protobuf 我的:http://download.csdn.net/detail/c471961491/9279185protoc...翻译 2018-05-17 10:38:34 · 4893 阅读 · 0 评论 -
cocos2dx RenderTexture 用法
renderTexture 能够将 可视元素绘制在一张texture里,随后我们就可以操作这张texture.renderTexture 最显著的一个功能就是截图下面先说它的用法,这里我用的是lua代码首先要有一个rendertexturelocal renderTexture = cc.RenderTexture:create(200,200)构造函数的两个参数分别是贴图的宽和高下面就要在贴图上...原创 2018-06-06 16:57:52 · 5582 阅读 · 0 评论 -
cocos2d项目如何关掉多点触摸
ios上很简单的在AppController.mm里[eaglView setMultipleTouchEnabled:YES]设置为NO,就是单点触控了,无需更改cocos底层代码; android上的做法是找到项目所引用的cocos引擎文件:Cocos2dxGLSurfaceView.java,找到onTouchEvent方法,在switch语句里的 MotionEve原创 2017-11-27 14:06:52 · 982 阅读 · 0 评论 -
DBUtil 对sqlite3的简单封装
/********************************************** * file: DBUtil.h * * date: 2016/09/19 10:36 * * TODO: 对sqlite3的简单封装 * 注意:SQLite3 数据库使用的编码格式为:UTF-8 。如果出现乱码的话,就将其转为 UTF-8 格式!!!!!!!!!! * **********...原创 2018-03-30 15:04:37 · 23354 阅读 · 0 评论 -
cocos2dx项目复制文字到手机粘贴板
有的游戏中会提示添加官方微信或者关注公众号,为了方便玩家操作,就会有一个复制到粘贴板的功能。废话不多说了,直接上代码吧。c++代码如下:void WxApiInterFace::CopyStringToClipBoard(const char* roomIdStr){#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo minf...原创 2018-05-04 15:03:41 · 5437 阅读 · 0 评论 -
cocos2d-x3.0 物理引擎之详解
cocos2d-x3.0 物理引擎之详解我在编写游戏的时候遇到了这个问题, 物理引擎其他的内容还好理解, 就这三个函数就是没找到有人详细的解释一下。找了半天终于找到合理的解释,写下来好理解。先说物理引擎:想用这个物理引擎,首先必须 创建一个物理引擎世界,普通的场景就不行了,如下: //...原创 2018-04-27 16:52:04 · 23424 阅读 · 2 评论 -
裁剪ClippingNode
ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。ClippingNode 原理:ClippingNode是利用模板遮罩来完成对Node区域裁剪的技术。如何理解ClippingNode的遮罩?看下图的例子吧。原创 2017-10-11 13:52:05 · 958 阅读 · 0 评论 -
获取手机电量和通讯录
获取手机电量和通讯录我们在有一些游戏的时候需要获取手机的信息,有的时候还会获取用户的通讯录权限,我是无聊的时候研究了一下看看是如何获取的,研究完了,记下来,万一以后会遇到或许还会有用呢,毕竟脑子不好使嘛。1. 获取电量C++方法如下://添加获取当前电量方法void HelloWorld...原创 2018-04-24 17:29:51 · 4659 阅读 · 0 评论 -
TableView的使用方法
TableView的使用方法 类:TableViewTestLayer local TableViewTestLayer = class("TableViewTestLayer") TableViewTestLayer.__index = TableViewTestLayer function TableViewTestLayer.extend(target) ...原创 2018-01-24 16:56:57 · 2698 阅读 · 0 评论 -
cocos2d 编译安卓apk小技巧
我们在编译项目的时候,如果在项目中添加了自己新建的cpp文件的话,那么我们打包的时候需要在Android.mk文件中添加进去LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/HelloWorld.cpp 正常一般是这样的,如果增加了cpp文件就要在这个后面添加,如果添加的少还好,如果添加的多了...原创 2019-05-21 18:19:54 · 626 阅读 · 0 评论 -
cocos2d-lua 给热更文件生成MD5值
cocos2d-lua有一个很方便的功能,就是热更,那么热更新其实是apk本地文件和服务器文件进行对比,然后把把服务器和本地不一样的文件下载下来,然后读取更新下来的文件使用,这样就算是完成了更新,可是对比文件的时候如何对比呢,就是给每一个文件生成一个MD5值,然后根据这个MD5值来对比,那么这个MD5值该如何生成呢,不多说直接上工具:下载地址这个FileCompare.exe工具就是用...原创 2019-07-10 11:45:55 · 1043 阅读 · 0 评论 -
cocos2d-lua lua如何调用C++
这个呢,其实很简单,工程中,其实已经给我们留下了接口,我们只需要看看就知道了:看到这里就差不多知道了,我是这么做的:auto engine = LuaEngine::getInstance();lua_State* L = engine->getLuaStack()->getLuaState();lua_register(L, "hello_LuaToC", hell...原创 2019-07-15 10:40:55 · 772 阅读 · 0 评论 -
cocos2d-lua 没有日志输出控制台的解决方法
cocos2d-lua 新建的工程师没有日志输出控制台的,就只有一个游戏运行的窗口,那么我们习惯了观察日志寻找bug的话又改如何把他调出来呢,很简单,main.cpp 加上下面这段话:#ifdef USE_WIN32_CONSOLE AllocConsole(); freopen("CONIN$", "r", stdin); freopen("CONOUT$", "w", stdo...原创 2019-07-15 10:26:38 · 1666 阅读 · 0 评论 -
cocos2d-lua编译so文件错误记录
今天研究一个问题,想创建一个cocos2d-lua文件跑真机看看,因为涉及到修改引擎的代码,所以创建的源代码工程,然后我在编译so文件的时候报错了,arm-linux-androideabi-g++: error: CreateProcess: No such file or directory 错误如下:然后我在这里记录一下,解决方法:原因是.MK文件中包含的文件太多了,也就...原创 2019-07-05 16:53:22 · 725 阅读 · 0 评论 -
cocos2d-lua compile加密
usage:cocosluacompile[-h][-v][-sSRC_DIR_ARR][-dDST_DIR][-e] [-kENCRYPTKEY][-bENCRYPTSIGN][--disable-compile] 对lua文件进行加密和编译为字节码的处理。 optionalargu...原创 2019-07-08 11:54:51 · 863 阅读 · 2 评论