呦呦鹿鸣.
资深游戏开发工程师,某大厂主程,擅长2d/3d游戏开发,博客内容定期分享更新
展开
-
cocos2dx-lua开发, c++函数绑定导出lua方法
一、在项目的Classes目录里新建一个头文件命名为:CustomExport.h和源文件CustomExport.cpp并添加进VS工程二、添加代码1.在CustomExport.h头文件中添加如下代码:#ifndef _CUSTOM_EXPORT_H_#define _CUSTOM_EXPORT_H_#ifdef __cplusplusextern "C" {#en...原创 2020-04-10 12:33:22 · 1452 阅读 · 0 评论 -
UE4坐标系,U3D坐标系,COCOS坐标系,OPENGL坐标系,笛卡尔坐标系,D3D坐标系
待。。原创 2021-02-09 23:30:06 · 1932 阅读 · 0 评论 -
cocos2d 网络粘包与分包处理
ByteArray.lua--[[Serialzation bytes stream like ActionScript flash.utils.ByteArray.It depends on lpack.A sample: https://github.com/zrong/lua#ByteArray@see http://underpop.free.fr/l/lua/lpack/@see http://help.adobe.com/en_US/FlashPlatform/reference/原创 2021-02-04 10:18:44 · 1467 阅读 · 2 评论 -
lua string.match的使用 正则表达式 详解
什么是正则表达式正则表达式由一组特殊字符组成。lua中的特殊字符是%.^$±*?,一共12个。它们和一般字符按规则构成了lua的正则表达式。正则表达式的匹配方式. :所有字符%a : 与任何字母配对%c : 与任何控制符配对(例如\n)%d : 与任何数字配对%l : 与任何小写字母配对%p : 与任何标点(punctuation)配对%s : 与空白字符配对%u : 与任何大写字母配对%w : 与任何字母/数字配对%x : 与任何十六进制数配对%z : 与任何代表0的字符配原创 2020-12-11 14:29:31 · 8194 阅读 · 0 评论 -
cocos2dx 面试者(入门到高级) 必备知识
请关注订阅,本专栏会详细讲解cocos2dx开发各个重要的模块,实现中大型游戏开发文本以cocos2d 3.17.2版本为例,本篇内容专门为从事cocos2d开发的面试者提供帮助,精准解决面试遇到的问题,欢迎讨论一、 引擎部分1.cocos2d采用什么内存管理机制(引用计数)以及如何实现的答:采用引用计数管理内存,所有引擎对象的基类Ref中定义了一个成员变量_referenceCount并在构造函数中初始化为1(这句很重要)2.cocos2dx 基本的类有哪些,并说明引擎如何运行的答:.原创 2020-12-06 22:36:14 · 1608 阅读 · 0 评论 -
cocos2d-lua 客户端UI框架之(UIManager)
-------------------UI弹窗管理器-----------------------------------local Warn = function(content) print("Warn: "..content)endlocal UIMgr = {}function UIMgr:init() self.uiList = {}end--[[ 打开一个界面:始终显示最顶层的界面 参数: baselayer:ui的路径 ... :需要传递给UI的数据]]f原创 2020-11-26 12:20:05 · 1734 阅读 · 0 评论 -
cocos2dx-lua 客户端UI框架之(BaseLayer)
--code by zpengcheng--Date:2020/11/25local BaseLayer = class("BaseLayer", function () return cc.LayerColor:create(cc.c4b(0,0,0,150)) --底色用半透明end)function BaseLayer:ctor(...) self:enableNodeEvents(true) --注册节点事件(相关的方法:onEnter, onExit, onEnterTrans原创 2020-11-25 11:52:45 · 1540 阅读 · 0 评论 -
【cocos shader 007】 卷牌 翻牌 搓牌
详细代码请下载链接效果:原创 2020-11-20 17:16:16 · 1862 阅读 · 0 评论 -
cocos2dx-lua 高效的 事件分发器(EventDispatcher)
--region *.lua--Date--此文件由[BabeLua]插件自动生成local Warn = function(content) print("Warn: "..content)end----------------------------------Event:事件对象--------------------------------------local Event = {}function Event:init() self.eventName = nil se原创 2020-11-20 13:57:19 · 1353 阅读 · 0 评论 -
cocos2dx-lua 网络数据篇(socket)网络连接 代码举例(详细)
在cocos2dx中,如果我们改变一个节点的透明度setOpacity的时候希望子节点也跟着变化,我们可以调用节点的setCascadeOpacityEnabled(true)。然而这仅仅适用于我们对节点进行setColor设置基础颜色的时候有效果,如果使用shader程序,例如用shader程序让节点变灰,...原创 2020-11-20 11:03:25 · 2123 阅读 · 0 评论 -
cocos2dx 升级至 spine v3.8 快速加载 多个动画 缓存优化方案
在spine官方提供的代码中,没有提供动画文件的缓存处理,当同时加载多个动画的时候会卡帧(例如你的游戏中背包里有30个物品,每个物品都有一个相同的特效),动画数据数量越大,卡得越厉害。为此,我们需要对官方提供的代码做一些优化,经测试加载100个相同动画和加载一个动画没有区别,效率提高99.99%:(注:可以把下面的代码类声明和实现都写在 namespace spine里面,这样和官方代码格式统一)首先找到cocos2dx的spine库,通常在cocos2d/cocos/editor-support/.原创 2020-06-23 16:58:43 · 3540 阅读 · 0 评论 -
cocos2dx js 3.17.2 升级spine 兼容Spine v3.8 最新版
一、js版本的cocos2dx js 升级Spine的版本到spine v3.8和lua版本类似,主要是要改的文件不一样了。当我们模仿lua版本的操作,把新的spine文件拷贝并添加到工程中。如下图二、右键点击libSpine->生成,发现并没有报错。当我们生成或启动 jsGame项目的时候就会报一堆错,这是因为jsGame项目依赖了libSpine和libjscocos2d。在libjscocos2d项目中的jsb_cocos2dx_spine_manual.h和jsb_cocos2dx_原创 2020-06-22 11:39:54 · 2926 阅读 · 1 评论 -
cocos2dx v4.0 版本 构建工程,升级 Spine 到 v3.8
一、构建cocos2dx v4.0工程cocos2dx 4.0 是采用CmakeLists.txt构建工程的,所以我有必要安装能运行CMakeLists.txt的工具。在CMake官网下载:cmake-3.6.1-win64-x64.msi安装完成后,找到cmake的可执行文件.exe路径,并将这个路径添加到环境变量中的系统变量中(不会添加就网上去搜索cocos2dx如何添加环境变量的)。这是我的路径,仅做参考。命令行创建一个cocos2dx工程 cocos new MyGame -l原创 2020-06-17 18:25:36 · 2779 阅读 · 5 评论 -
cocos2dx lua 升级spine兼容Spine库v3.8到最新版本
本篇将升级cocos2dx引擎中的spine库, cocos2dx自带的spine版本是spine2.x的老版本,现在的spine已经到v3.8了1 先升级cocos2dx c++原生版本详细过程请看我的上一篇文章:链接:https://blog.csdn.net/zhang1461376499/article/details/1060316442 兼容lua参考如下几个文件为了兼容lua,这三个文件中调用了spine库里面的东西,所以我们要做相应的修改,首先看cocos2dx引擎中几个文件:原创 2020-05-10 22:35:54 · 6119 阅读 · 25 评论 -
cocos2dx 3.17.2 升级最新的Spine
以cocos2dx 3.17.2自带的spine库不支持最新的spine版本导出的动画文件。本篇详细讲解如何升级1.下载并解压下载地址:https://download.csdn.net/download/zhang1461376499/12405347下载完之后解压大概是这样2.创建一个cocos2dx 3.17.2工程创建好之后大概是下面这个样子3.拷贝文件在项目的cocos2d\cocos\editor-support\spine目录下 将所有代码文件删除,剩下如下图的三个文件,这三原创 2020-05-10 11:47:32 · 3004 阅读 · 2 评论 -
【cocos shader 004】 聚光灯 灯光 烘焙 效果
还是HelloWorld工程举例原图将上图放进工程res目录下,在MainScene.lua文件中用下面的函数替换onCreate函数:function MainScene:onCreate()– add background imagelocal img = ccui.ImageView:create(“game.png”):move(display.center):addTo...原创 2020-05-07 16:29:47 · 1774 阅读 · 0 评论 -
【cocos shader 002】开发如何使用GLProgram shader编程
先看效果 废话不多说,直接上代码,本篇做一个图片变灰的特效,打开cocos2dx-lua的helloWorld工程,在MainScene的onCreate函数里添加如下代码--新建一张默认的图片 local img = display.newSprite("HelloWorld.png") :move(display.center) :addTo(s...原创 2020-05-07 13:24:26 · 1358 阅读 · 2 评论 -
【cocos shader 001】 特效 Effect举例 图形编程
本篇介绍多种cocos shader特效,后续的博客会逐一讲解这些特效的具体的代码, 欢迎关注、订阅交流1.波浪效果 2. 点击涟漪效果 3. 陷入效果 4. 滚动效果 5. 摆动的小草 6. 聚光灯 7. 刮刮乐 ...原创 2020-05-07 09:59:21 · 1959 阅读 · 1 评论 -
cocos2dx lua代码和图片资源加密和解密
在cocos2dx项目开发中,发布游戏的时候我们需要对脚本代码和图片进行加密,防止别人破解利用我们的资源干坏事。加密:1. 代码加密:采用cocos自带的luac加密方式, 打开cocos工程的根目录(大概是下面这个位置)在红色目录栏中输入cmd回车打开控制台,在控制台输入:cocos luacompile -s xxx -d xxx。(-s的xxx填写你要加密的文件路径, -d...原创 2020-04-09 19:11:02 · 4438 阅读 · 0 评论 -
cocos2dx 自带库 spine v2.x缓存优化方案
在spine官方提供的代码中,没有提供动画文件的缓存处理,当同时加载多个动画的时候会卡帧,动画数据数量越大,卡得越厉害。为此,我们需要对官方提供的代码做一些优化:(注:可以把下面的代码类声明和实现都写在 namespace spine里面,这样和官方代码格式统一)1.首先,在skeletonRender.h文件里添加一个缓存的单例类class SpineDataCache{static ...原创 2019-07-24 10:32:16 · 3459 阅读 · 2 评论