自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 cmake 学习笔记

cmake 学习笔记1、什么是cmakeCMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/works...

2020-03-04 18:09:11 238

原创 Lua-table.sort的error分析

问题描述lua table.sort 排序报错,invalid order function for sorting stack traceback测试代码结论根据测试结果,出现lua error需要满足以下条件table中元素数量大于3table中元素存在相等情况当元素相等时,排序方法返回true排序算法不稳定源码分析不稳定的算法不一定会报错,所以在复杂排序算法上很...

2019-10-23 16:05:24 814

原创 【lua】理解闭包与upvalue

引言:function a() local p = 10 local function b() p = p + 1 print("this is func b") print("upvalue params", p ) end return bendb = a()b() -- 11b() -- 12

2019-09-18 20:32:29 315

原创 心路历程(二)

深圳游玩计划表出行目的:让女票开心。达成目标:看海,逛街旅游景点1. 红树林骑行 + 欢乐海岸游玩 耗时: 1天 可达成目标: 看海,逛街2. 深圳湾公园 + 海岸城shopping 耗时: 1天 可达成目标: 看海,逛街3、华侨城创意园 耗时: 1天 可达成目标: 没有,文艺青年很喜欢4、世界之窗 or 锦绣...

2019-03-27 14:44:33 220

原创 估算lua内存大小

想要获取lua元素的size,无法直接使用sizeof,需要使用collectgarbagelocal function getMem() return collectgarbage("count")endcollectgarbage("stop")local before = getMem()local a = {}local after = getMem()print("us...

2019-02-14 12:05:54 6864 1

原创 svn指定文件为binary(二进制文件)

总览:某些文件例如plist文件,伴随资源文件生成,自身不需要作为文本文件管理。问题描述:假设有3个bug,均修改同一个资源文件。版本号按照时间顺序为p1 p2 p3。由于某些原因,需要p1 p3先进行线上更新,p2在后续版本的更新计划中。这时通过svn merge合并文件的时候plist文件默认做为文本文件处理,直接merge会导致p2中的修改不会被合进来, 资源文件(png,jpg等)均...

2018-10-12 22:07:03 2129

原创 base64编码

base64编码Base64是网络上最常见的用于传输关于特效.note节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表...

2018-04-17 17:24:14 315

原创 lua table 源码分析

lua table 源码分析lua使用table的单一结构,既可以做array,list 又可以成为hash,链表,树等结构,是一种简洁高效的使用形式。首先看下table的数据结构定义(lobject.h)319 /*320 ** Tables321 */322 323 typedef union TKey {324 struct {325 TValuef...

2018-03-29 21:12:23 1216 1

原创 python操作xlsx

python 试用模块XlsxWriterxlsxWriter支持多种excle功能,与excel完美兼容,写大文件,速度快且只占用很小的内存空间。 1. 安装XlsxWriter 试用pip或者easy_install安装。(pip,easy_install是python自带exe工具,在python安装目录script下)sudo pip install XlsxWriter

2018-01-29 17:00:50 1485

转载 正则表达式-括号

正则括号正则表达式的() [] {}有不同的意思。 () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。

2018-01-05 22:59:47 357

原创 python 代码本

当前执行文件__file__sys.argv[0] file和sys.argv[0]都可以获得当前执行文件的文件名。在当前执行文件中,获得的值是相同的。在外部文件调用的情况下file获取当前文件,而sys.argv[0] 则是py调用文件。路径__file__:可能是相对路径。取决于外部执行python的时候的路径 sys.argv[0]:可能是相对路径impo...

2018-01-05 21:15:26 278

原创 lua -0 与 0

lua -0 与 0lua中的number是存在-0的。 local a = -0.000001 a = math.modf(a, 1) print("result :" .. a)输出结果: result : -0lua底层的数据结构都是double类型,所以-0的存在并不奇怪。除去符号位不同其二进制编码与0是一样的。那么-0 与0的异同 print(a) pr

2017-12-22 11:08:01 1656

原创 utf8编解码详解

utf8编解码详解及简单应用编码规则UTF-8是Unicode的一种实现,是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。 字节数 编码 二进制 1字节 0000 0000-0000 007F

2017-08-22 17:44:04 5190 1

转载 十全干货:核心游戏系统架构设计

十全干货:核心游戏系统架构设计 首先先来定义一下什么是我这里说的核心游戏系统,一般来说,游戏可以大致分为两个部分,一个部分是我这里指的核心游戏部分,比如FPS里的射击战斗部分,或者如LOL里的战斗对抗部分,又或者是体育类游戏里的比赛部分等等。这些是游戏里的主要玩的点,核心游戏部分可以很重,占到玩家80%以上的游戏时间,也可以很轻,甚至没有,像现在很火的列王的纷争(COK),几乎就是没有什么核心游戏部

2017-08-01 12:30:41 948 1

原创 android studio 移植的bug解决记录

android studio已经有四年了,是时候将抛弃ADT使用android studio了。下面记录下eclipse到android studio的一些记录: 1、Error: Your project contains C++ files but it is not using a supported native build system.解决方案: 如果没有grade.properti

2017-05-31 17:16:55 2917

原创 lua基础(sh向lua传递参数arg)

最近将lua作为一种独立的脚本语言来制作一些小工具。在使用过程中发现了一个一直被忽视的知识点,全局变量arg。 任务:通过sh脚本调用lua。 问题:需要通过命令模式对lua脚本传递参数 解决方法:lua全局变量arg 参考文献:lua手册 6 - Lua Stand-alone Although Lua has been designed as an extension langua

2017-02-27 12:28:34 10251

原创 制作打包工具

由于热更升级,所以打包工具同样需要升级。新的打包使用单个文件md5比较的方式进行,所以选择使用java制作jar包,作为打包工具(为什么?因为简单啊)遇到问题: 打包工具涉及json解析,读写,所以使用gson.jar作为解析工具。对于复杂json的解析"assets": { ".DS_Store": { "md5": "194577a7e20bdcc7afbb718f5

2017-02-09 17:13:54 449

原创 热更新hot update大纲

对于热更的重要性,相信大家都了解。做游戏行业近3年了,在更新过程中涉及到方方面面的问题。在次对热更新做一下梳理,希望同学们不要在相同的坑上跌倒。1、首先说下什么是热更新(what)经常有人说静态语言无法热更,动态语言可以热更,那么什么是静态语言,什么是动态语言?简单的说:强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言 一般情况下需要编译执行。弱类型语言(动态类型语言)是指不需要进行

2017-02-05 17:50:23 2351

原创 聊聊编码

最近发现项目中判断中英文的时候采用了127的判断方式,导致的乱码的出现,仔细看了下,发现问题出在对utf8编码的不理解上。所以写出来给大家分享一下,顺便也复习一下相关的基础知识。关于:ASCII,Unicode和UTF-8ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个

2017-01-09 18:47:28 318

原创 关于工作的心得。

1、关于工作。明确工作目标,不要听他要做什么,要明确他想要做什么。 要做的东西和想要做的东西完全不一样 2、尽可能多的考虑问题,不要满足于一个问题一个问题的分析。这是程序员的思维,不涉及具体方案的时候考虑的东西永远不是一个一个的问题。所有的一切都是最终效果,所以开始的目的就是结束。 3、提供尽可能多的信息,考虑的场景永远不是自己跟老板任何交代,考虑的是提供出信息后,获取信息的人如何跟其他人交代

2017-01-09 18:30:24 338

转载 关于领导力

领导力=表演 做员工,做好自己就可以了。做领导,要的是领导力。领导力是什么?如何才能有领导力? 批评是十分重要的部分。如果你不严厉,你的下属就不会拿你当回事。批评也是要有技巧的。很多时候并不是真的发火,而是做一场秀,秀给别人看的。所谓杀鸡敬候也就是了。

2016-11-03 11:19:54 371

原创 面向对象的lua

使用lua很久了,对于如何面向对象使用lua还是想说些什么。 1. 首先我想说的是lua不适合面向对象,或者说他的基因不是为面向对象设计的。 2. lua可以使用面向对象,作为lua的一个特性可以为我们带来很多惊喜。如何面向对象:元表 PS:不知道元表的同学请去补习基础知识例如Constructer = {}Constructer.__index = function(_, key)

2016-08-26 21:33:59 535

原创 聊聊如何使用一套csb进行多语言匹配

聊聊csd 和csb虽然cocos已经抛弃cocostudio了,不过考虑到现有项目依然在使用它,所以还是说说吧。先说说FlatBuffers吧。+ 概述Google在2014年6月份发布了跨平台序列化工具FlatBuffers,提供了C++/Java/Go/C#接口支持,这是一个注重性能和资源使用的序列化类库。相较于Protocol Buffers,其更适用于移动设备,FlatBuffers提

2016-08-26 20:52:25 1704

原创 修身修心

另一次选择3年前,我选择去做游戏,一方面是因为喜欢,另一方面是希望能有所改变。 3年前,我来到北京,一方面是被迫,另一方面是想试试运气。 3年后,我已经是客户端的主程了 3年后,我将面临又一个选择 是继续留下期待着那一个崛起,还是迈开步子,去结识去闯荡去尝试? 也许是年龄越大,胆子越小。 想了很久,终于有点想明白了,我们不是去选择,而是被选择。做好自己的事,多读书

2016-08-26 10:22:41 497 1

原创 cocos2dx-3.4 lua import

cocos2dx版本号:3.4finallua版本:5.2从2.x切换到3.4,有几个不适应的地方,一个就是lua层进行的封。稍微研究了一下,发现2个方法是经常使用,而且是很有意思的,class() and import()。class主要作用是进行继承,import毫无以为就是加载。lua本身的模块加载是通过require来实现的。import其实只是对file_name

2015-03-09 14:51:33 3397 2

原创 cocos2dx 3.4 lua mvc代码解析

使用3.4python新建一个lua工程,进去一看,我去,这个都是个啥!!!仔细研究,在研究,终于看懂了一点,先记下来。程序入口,main.m 无变化,AppDelegate::applicationDidFinishLaunching()初始化luaEngine,executeScriptFile("src/main.lua”)执行脚本ok,然后听我慢慢道来先上目录结构m

2015-02-07 21:08:43 7790 1

原创 cocos2dx 3.4之旅

之前使用coco2dx 2.3制作的游戏终于到了上线了时候了,刚好有时间调研下3.4的东西,为下个游戏做点准备。闲话少说,先上个差异总览Coco2dx-3.xCoco2dx-2.x容器变更Value、Vector、Map CCArray,CCDictionary性能优化

2015-02-07 11:45:39 1749

转载 cocos2dx挖掘

三、Cocos2d-x Android工程代码阅读单独将如何阅读代码拿出来,是为了后面分析引擎的驱动流程做准备工作。学习类似Cocos2d-x这样的游戏引擎,仅仅停留在游戏逻辑层代码是不 能很好的把握引擎本质的,因此适当的挖掘引擎实现实际上对于理解和使用 引擎都是大有裨益的。以一个Cocos2d-x Android工程为例,它的游戏逻辑代码以及涉及的引擎代码涵盖在一下路径下(还是以

2014-06-21 20:10:57 867

原创 游戏人生,混乱的坐标系和锚点

cocos2dx十分容易上手,刚开始接触时

2014-06-08 17:48:19 902

转载 浅析Lua中table的遍历

当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是:for key, value in pairs(tbtest) do   XXX  end  for key, value in ipairs(tbtest) do   XXX  end  for i=1, #(tbtest) do      

2014-06-04 13:52:17 442

原创 游戏人生(二),有一种东西叫CCScrollView

搞过app或者game'的一定不会陌生:CCScrollView还有

2014-06-03 00:52:03 1386

原创 游戏人生(一),我的lua之旅:那些坑爹的CCBReaderLoad

首先,我们说说这个file:///Users/jytx/Documents/cocos2d-x-2.2.3/projects/Sok/CCBReaderLoad_backup.lua

2014-05-27 21:01:48 6664 1

原创 递归打印目录结构

今天需要给维护人员提供一个项目的目录结构。入过项目不大1-2百m的话手写还可以接受,如果项目目录结构很复杂,或者项目巨大,人为手写的话就太变态,于是写了一段代码,解决这个问题。生成结果:我们执行完生成的期望目标|_serlet名字|    |_help|    |_pages|    |    |_文件夹1|    |    |    |_文件夹1.1|    |

2013-03-08 13:21:45 714

原创 简单工厂模式及工厂模式

  设计模式基本同时也是应用最广泛的就是工厂模式。首先来看一个简单工厂模式:public class OperateFactory{ public static Operate createOperate(String operate){ Operate of = new Operate(); switch(operate){ case "+":of=new AddOperat...

2013-02-27 20:45:34 329

原创 多态初识

最近产品升级,有时间好好整理一下最近的学习内容。翻了翻书籍,对一些经常使用但是理解不透彻的东西整理下。首先是多态。多态是面试经常遇到的一个问题,不过不得不说,很多书籍对多态的叙述实在是太烂了,烂到我现在都记不住什么是多态。多态:不同对象可以执行相同的动作,不过需要他们自己来实现代码来执行。举个例子:(引用自《大话设计模式》)京剧——以前都是子承父业,代代相传的技术。现在一对父子就是从事

2013-02-20 20:38:46 361

原创 checkbox复选框 翻页复选

最近做到一个项目,需要checkbox翻页复选这个功能。网上查了下,没什么好的方法,这里将我的实现分享出来,看看大家有没有更好更有效的方法。闲话不多说了,首先关于checkbox:Checkbox 对象Checkbox 对象代表一个 HTML 表单中的 一个选择框。在 HTML 文档中 每出现一次,Checkbox 对象就会被创建。您可以通过遍历表单的 elements[]

2013-01-22 15:51:20 994 1

原创 java线程知识普及扫盲篇(1)

1、进程与线程        线程(Lightweight Process,LWP)被称为轻量级进程,看名字就可以知道与进程之间的关系。一个程序可以有多个任务,通常每个任务称为一个线程(thread)。线程与进程最本质的区别在于:进程有自己的独立变量,线程则是共享数据。 2、创建线程  public class MyrRun implements Runnable {

2012-07-19 14:22:18 369

原创 web项目Spring框架下虚拟测试端编写

后台模拟测试    现行web开发使用mvc分层模式下往往页面,与底层分开来进行开发,那么如何在没有页面的情况下进行测试哪?    首先要明确一点 Spring框架下的类属性的初始化,是在程序加载.xml文件中进行的。 public class RunInfoModuleHandle { private static Log log = LogFactory.getL

2012-07-16 14:51:31 1109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除