- 博客(40)
- 资源 (139)
- 收藏
- 关注
原创 lua笔记
Lua中的字符串通常表示“一个字符序列”。Lua完全采用8位编码。Lua的字符串是不可变的值。不能像C语言中那样直接修改字符串的某个字符,而是应该根据修改要求来创建一个新的字符串。Lua的字符串和其它对象都是自动内存管理机制所管理的对象,不需要担心字符串的内存分配和释放。在Lua中,字符串可以高效的处理长字符串。当字符串是多行存在时,可以使用“[[]]”符号来界定一个多行字符串,同时,Lua...
2020-03-26 17:06:47 3760
转载 多种SOKECT通讯模型的理解(select,WSAAsyncSelect,WSAEventSelect,Overlapped I/O 事件通知,Overlapped I/O 完成例程,IOCP)
老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解SocketI/O模型。 一:select模型 老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信,在这种情况下,“下楼检查信箱”然后回到楼上耽误了老陈太多的时间,以至于老陈无法做其他工作。 s...
2020-03-26 15:20:50 454
转载 最准确的理解同步/异步,阻塞/非阻塞
网上流传着一个小故事来介绍同步/异步,阻塞/非阻塞的概念相信不少同学都看过,(普通水壶,简称水壶;会响的水壶,简称响水壶)。具体如下:同步阻塞:小明把水壶放到火上,然后在那傻等水开同步非阻塞:小明把水壶放到火上,然后去客厅看电视,时不时的去厨房看看水开没有异步阻塞:小明把响水壶放到火上,然后在那傻等水开异步非阻塞:小明把响水水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响...
2020-03-26 15:09:05 380 1
转载 理解同步、异步、阻塞和非阻塞
关于同步、异步、阻塞和非阻塞这个概念性问题,这可能是非常容易混淆的概念之一,特别是那些刚开始解除网络编程的人来说。本篇文章争取来说清楚这个问题,如果有错误之处,恳请批评指正。写在前面首先大家心中需要有以下的清晰认知:阻塞操作不等于同步(blocking operation does NOT equal to synchronous) 非阻塞操作不等于异步(non-blocking o...
2020-03-26 14:43:37 338
转载 unix IO模型
在之前的文章《理解同步、异步、阻塞和非阻塞》我们谈了一下关于同步、异步、阻塞和非阻塞的理解。这篇文章,我打算来谈谈unix的io模型,其中会涉及到下面的内容:阻塞 I/O(blocking IO) 非阻塞 I/O(nonblocking IO) I/O 多路复用( IO multiplexing) 异步 I/O(asynchronous IO) 信号驱动式IO模型(signal-dri...
2020-03-26 14:37:22 346
转载 Select、poll、Epoll、KQueue区别
在早期的文章《unix IO模型》中我们介绍了5种IO模型,如下图是几种IO模型的对比几种IO模型的对比从上面的图可以看出,从左到右,越往后,阻塞越少,理论上效率也就越优。其中Select对应的是第三种IO模型:I/O Multiplexing IO多路复用模型,而epoll与kqueue其实和Select一样也属于I/O Multiplexing IO多路复用模型,只是相比于se...
2020-03-26 14:35:55 1753
转载 Mac homebrew 的安装和 brew 命令的使用
Homebrew 是 mac 下的包管理器,基于命令行模式,使用命令brew管理软件。类似 ubuntu 下的 apt-get 、fedora 下的 yum。Homebrew 的官方地址:https://brew.sh/。安装 brew 命令打开mac的终端软件,输入下面的内容,然后回车:/bin/bash -c "$(curl -fsSL https://raw.gith...
2020-03-25 10:55:51 972
原创 javascript宏任务与微任务笔记
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/?utm_source=html5weekly
2020-03-25 10:25:36 100
转载 Tasks, microtasks, queues and schedules
Posted 17 August 2015 - hold onto your butts for this one, it's spec-heavyWhen I told my colleagueMatt GauntI was thinking of writing a piece on microtask queueing and execution within the browser...
2020-03-25 10:22:22 469
转载 js 宏任务和微任务 promise
1.概念:宏任务(macrotask )和微任务(microtask) 表示异步任务的两种分类。常见宏任务:I/O 、setTimeout、setInterval;微任务:Promise.then catch finally、process.nextTick在挂起任务时,JS 引擎会将 所有任务 按照类别分到这两个队列中,首先在 macrotask 的队列(这个队列也被叫做 task q...
2020-03-25 09:56:56 915
原创 cocos creator渲染笔记
cocos creator2.0以上的版本对之前的渲染流程进行了优化,根据渲染renderTag,使用查表法进行渲染数据的更新.creator中渲染组件都要继承cc.RenderComponent,这个是渲染组件的基类,如果要自定义渲染组件,需要重写cc.RenderComponent的_resetAssembler 及_activeMaterial 方法,_resetAssembler 在组...
2020-03-24 16:55:25 990
转载 CocosCreator2.1.0渲染流程与shader
CocosCreator2.1.0版本正式支持导入3D模型对于2.5D游戏的开发来说有着重要意义自己此前在写捕鱼游戏时了解过自定义shader并实现了4种不同的水波效果但经过CocosCreator版本的不断升级尤其是1.10和2.0两个版本旧的渲染器被抛弃了因此老的shader特效也全都不能用了直到最近正好有时间,花了几天把原先写的特效升级到了最新的2.1.0版本...
2020-03-23 19:45:06 712
转载 Cocos Creator v2.2 自定义渲染组件及材质介绍
Cocos Creator v2.2 已于 10 月 18 日正式发布,该版本对原生平台进行了大幅性能优化,同时在引擎层面也做了不少改动,包括 3D 模型渲染合批、大幅增强 TiledMap 支持等等,详细的版本改动可[点击这里]查看。此外,Cocos Creator 2.2 版本基本同步了 Cocos Creator 3D 的材质系统,新版本的材质系统已趋于稳定,可以很方便地在编辑器中进...
2020-03-23 19:44:12 1017
转载 CreatorPrimer|2.x的渲染初探
Shawn之前只是从感性的一面了Cocos Creator 2.0在性能更好,增加部分3D效果的支持,同时API有一些变化。随着对Cocos Creator 2.x的实践,以及引擎组大神们的指导,对Cocos Creator 1.x和2.x有了新的了解和认识,在此将这次学习内容与大家分享。1. 1.x与2.x的渲染区别Cocos Creator 1.x 是在cocos2d-js基础上增加了...
2020-03-23 19:43:08 214
转载 Cocos Creator 资源加载流程剖析【二】——Download部分
Download流程的处理由Downloader这个pipe负责(downloader.js),Downloader提供了各种资源的“下载”方式——即如何获取文件内容,有从网络获取、从磁盘获取,不同类型的资源在不同的平台下有不同的获取方式。比如脚本在原生平台使用require方法获取,而在H5平台则使用动态添加的 <script> HTML标签,指定src进行加载。 又比...
2020-03-20 11:05:30 1288
原创 写javascript代码时的一些优化方式
1.javascript中的原型查找比较耗时,如果项目中使用object只是做为一个字典或者单例,不用使用原型对象时,尽量将原型对象设置为null,如果有原型对象,并且确定某个属性是在子类中,可以使用object.hasownProperty判断属性是否存在....
2020-03-20 09:54:08 120
转载 Instruments 之 Energy Log
对于生活离不开手机的我们来说,手机的电量就是一条重要的生命线,一般来说,当电量低于 20% 的时候,我们的心总是那么揪着。作为一个开发者来说,我们应该为用户的手机省电,让用户有限的电量能够更长时间的使用我们开发的 APP,对用户,对我们开发者来说是两全其美的方案。所以 APP 的电量消耗也应该是性能优化的点。案例还是以 raywenderlich 的 Catstagram APP 作为分析...
2020-03-18 11:12:55 987
转载 iOS开发:对于Xcode的Open Developer Tool中常用功能使用的总结
整理一下Xcode菜单栏里面Open Developer Tool里面的功能,这里只介绍常用的几个功能的使用,剩余没有介绍到的功能模块请自行脑补。。。根据Open Developer Tool菜单栏里面显示的从上到下的顺序开始介绍,请按顺序阅读即可。一、Instruments工具Instruments工具是iOS性能优化工具。对于程序员来说,程序代码性能是个老生常谈的话题,随着程序项目...
2020-03-18 10:17:06 326
转载 tolua++实现分析
项目正在使用cocos2dx的lua绑定,绑定的方式是tolua++。对大规模使用lua代码信心不是很足,花了一些时间阅读tolua++的代码,希望对绑定实现的了解,有助于项目对lua代码的把控。从阅读结果上来看,起码在内存管理上,帮助还是很大的。1.tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,userdata的值,是c++对...
2020-03-17 15:44:33 292
转载 tolua++ 源码分析
tolua++ 源码分析图中的黑色表示lua table,灰色表示userdata,浅灰=》light userdata,绿色=》内存tips:1, lua里的userdata是一块内存(lua_newuserdata时指定体积),有metatable,但是doesn't have any key。所以,每次访问一个usrdata,都一定是到它的metatable里找的。...
2020-03-17 15:32:11 594
转载 lua——userdata使用
userdata说明:0、Lua中使用userdata类型来表示在C中定义的类型。userdata只是提供了一块原始的内存区域,可以用来存储任何东西,并且,在lua中userdata没有任何预定义的操作。在C中调用函数lua_newuserdata会根据指定的大小分配一块内存,并将相应的userdata压入栈中,最后返回这个内存块的地址:void *lua_newuserdata(lua_St...
2020-03-17 10:09:42 1777
转载 Lua Userdata 的元表 (Metatable)
在Lua C API编程上,经常有一些博客会说,必须使用luaL_newmetatable和luaL_setmetatable来给userdata加元表。还说给userdata加的元表不是普通的table。于是本着不信邪的态度,我翻了一下源码并自己尝试写了一些测试。普通的表能做userdata的元表么对于这个问题,我觉得是可以的,因为Lua中只有这一种数据结构,不存在什么特别的表。cla...
2020-03-17 10:06:41 971
转载 lua: userdata的metatable使用
1 如何封装c++的指针对于c++对象的lua包装,我们可以使用template<typename T>struct luaUserdataWrapper{luaUserdataWrapper() {}luaUserdataWrapper(const T& d) : data(d) {}T data;};class CObj...
2020-03-17 09:58:22 485
转载 tolua++实现分析
项目正在使用cocos2dx的lua绑定,绑定的方式是tolua++。对大规模使用lua代码信心不是很足,花了一些时间阅读tolua++的代码,希望对绑定实现的了解,有助于项目对lua代码的把控。从阅读结果上来看,起码在内存管理上,帮助还是很大的。1.tolua++如何将c++对象导入到lua里tolua++为每一个传入lua的对象建立一个userdata,userdata的值,是c++对...
2020-03-16 15:24:32 184
转载 我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类
cocos2d-x 2.x 与 cocos2d-x 3.x 差异(tolua++)cocos2d-x在2.x版本里就是用toLua++和.pkg文件这么把自己注册进Lua环境里的,然而从cocos2d-x 3.x开始,用bindings-generator脚本代替了toLua++。bindings-generator脚本的工作机制是:1、不用编写.pkg...
2020-03-13 17:38:57 319
转载 Lua中的weak表——weak table
弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的。弱表的定义是:A weak table is a table whose elements are weak references,元素为弱引用的表就叫弱表。有弱引用那么也就有强引用,有引用那么也就有非引用。我们先要厘这些基本概念:变量、值、类型、对象。 (1)变量与值:Lua是一个dynamically t...
2020-03-13 16:43:56 609
转载 AppStore发布流程(从证书创建到app发布一站式)
简介iOS-APP发布流程细分一般包含八部分:有可用的苹果开发者账号(AppID)。 app相关证书信息配置(开发者发布证书、描述文件)。 开发工具(XCode)设置。 打包应用app。 itunes平台填写待提交app信息。 提交ipa文件到itunes平台。 提交审核。 等待审核结果。本文主要针对这八部分以图文形式进行说明。一、苹果开发者账号如果已经有可用账号了...
2020-03-13 11:39:27 355
转载 Apple开发者账号介绍及证书配置说明。
一、Apple开发者账号介绍1.开发者账号共有三种类型:个人级、公司级、企业级。公司和企业都属于“组织”大类,可多人协作。在苹果的开发者平台登录后,可在People界面邀请其他人员协作开发,邀请的人需要注册一个apple id 邮箱,并且可以设置开发人员的权限。p2.辨别你手中账号是什么类型:A:个人级:登录后的页面如下图:红色马赛克下方是:Apple Developer Pr...
2020-03-13 11:07:00 1773
转载 iOS开发:对于Xcode的Open Developer Tool中常用功能使用的总结
整理一下Xcode菜单栏里面Open Developer Tool里面的功能,这里只介绍常用的几个功能的使用,剩余没有介绍到的功能模块请自行脑补。。。根据Open Developer Tool菜单栏里面显示的从上到下的顺序开始介绍,请按顺序阅读即可。一、Instruments工具Instruments工具是iOS性能优化工具。对于程序员来说,程序代码性能是个老生常谈的话题,随着程序项目...
2020-03-13 09:31:32 687
原创 creator开发时遇到的一些问题
在使用creator开发游戏时,随着游戏的迭代,资源时常需要更新,在替换资源时可能会误删部分资源,这时运行游戏就会出现一大堆错,所以在替换资源时多注意,如果出现错误,可以在运行时不加载资源,再慢慢加载一部分资源,这样定位错误会比较快一些....
2020-03-12 17:32:39 399
转载 iOS 内购最新讲解
本文来自IIronMan,作者 枣泥布丁 本文为CocoaChina网友IIronMan投稿 一.总说内购的内容 协议、税务和银行业务 信息填写 内购商品的添加 添加沙盒测试账号 内购代码的具体实现 内购的注意事项 二.协议、税务和银行业务 信息填写 2.1、协议、税务和银行业务 信息填写 的入口 协议、税务和银行业务 ...
2020-03-12 15:20:59 1331
原创 Xcode 中的黄色文件夹/蓝色文件夹
蓝色、黄色首先是和你导入文件夹时的勾选项目有关系: 黄色:-->group蓝色:--> folder在group中的.m/.h文件,#import "xxxxx.h" 直接引入文件即可;在folder中的.m/.h文件,#import "文件名/xxxx.h" 需要引入文件的全路径...
2020-03-10 19:29:16 851
原创 mac下安装Cmake
cocos2dx 4.0开始需要使用cmake生成各个平台的工程,所以在ios下需要安装cmake来生成ios工程,首先去cmake官网(https://cmake.org)下载mac下的cmake.dmg安装包,下载好了直接点击安装即可,这样就可以使用cmake的IDE客户端了,但是如果想要使用cmake命令行工具怎么办呢,有以下两个方法:1.打开CMake应用,并在Tools中点击“How...
2020-03-10 13:07:58 595
原创 cocos2dx3.X lua绑定
1.cocos2dx3.x lua的绑定有两种方法:第一种是使用generator.py脚本根据.ini配置文件生成绑定的.cpp和.hpp文件;另一种是手动绑定,工程中cocos2d-x\cocos\scripting\lua-bindings\manual中的文件都是手动进行绑定的首先,使用generator.py自动绑定流程,要进行自动绑定需要修改.ini和genbindings...
2020-03-10 11:44:01 240
原创 javascript的混淆与反混淆工具
混淆工具:YUI Compressor Google Closure Compiler UglifyJS JScrambler反混淆工具:jsbeautifier.org JSDetox
2020-03-09 17:26:25 846
转载 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战
信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点。HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保持警惕。但同时还存在着另一个问题,就是应用中程序专用代码的易访问性。为了防止盗版或者至少使盗版更加困难,常会使用混淆工具对 JS 代码进行混淆。作为对立面,反混淆工具也可以将混淆过的 JS 代码进行...
2020-03-09 17:25:36 1169
原创 tcpdump抓包问题
使用tcpdump抓取某个IP地址的包来分析TCPIP协议的握手过程,sudo tcpdump i 7 "tcp[tcpflags] != 0 and host 127.0.0.1" -c 3也就是前三个包,发现TCP的Flags的标记位为Flags[.],这个Flags[.]中的点就代表ACK标记为1....
2020-03-09 10:49:41 183
原创 cocos creator中制作图片字体的坑
在cocos creator中制作图片字体,美术把图片给过来后在cocos creator中查看图片的属性,属性中的值一定要为零,如果不为零,制作的字体偏移不对;将TrimType改为手动,然后Trim Threshold改为0,Trimx为0,Trimy 为0...
2020-03-05 15:26:19 1693
原创 cocos creator开发笔记
最近一直使用cocos creator开发游戏,开发过程中会遇到一些问题,随手记录一下:1.cocos creator中js或ts文件可能会相互引用,有时需要某些文件引入时间比另外一些要早一些,查看文件的require顺序,可以运行游戏在chrome中查看2.creator2.3中的Button控件,在代码中改变button控件的enableAutoGrayEffect的属性为t...
2020-03-03 17:31:18 651
原创 前端调试技巧之override
在前端开发过程中,通常需要在线编辑某个样式或者js代码,刷新后又会被覆盖,这样不利于调试.然后使用chrome浏览器调试时可以解决这个问题,在chrome中打开一个页面,打开开发者工具,选择source标签页,如下所示然后选择下面的overrides标签页,点击+号创建一个文件夹,用于保存修改过的文件在当前页面中修改某个样式或js脚本代码,在page页面中右击该脚本以应的文件,...
2020-03-02 09:22:12 1902
PyQt4-4.11.4-cp27win32
2017-10-25
cocos2dx Texturepacker打包的大图
2017-10-24
Unity3D人工智能编程精粹
2017-10-20
mangos源码(游戏服务器端程序框架)
2017-10-12
JAVA反编译和逆向工程技术
2017-10-12
cocos creator shader
2018-07-17
Game AI Pro 2 Collected Wisdom of Game AI Professionals.pdf
2018-02-02
我所理解的Cocos2d-x
2017-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人