
编程心得
文章平均质量分 85
watl0
1140454645@qq.com
展开
-
2020年终技能点总结
2020年终技能点总结1.使用Jenkins自动化出包发布2.小游戏发布更新上架流程3.换装模块从设计规范制定到效果实现4.项目优化,资源管理心得5.图形学基础原理进一步掌握2021展望1.图形学进一步掌握,能熟练改写shader2.能扛起前端框架搭建任务3.通过独立开发的项目练手,训练技术选型能力和从零搭建复杂项目能力4.在团队协作方面具有更强的共情能力...原创 2020-12-30 18:10:20 · 200 阅读 · 0 评论 -
游戏开发中的美术资源规范
美术资源规范:一个模块下的散图会打图集,降低drawcallUI布局时文字和图片分组,利用批处理降低drawcall通过引用计数等方式管理资源的加载和释放,降低运行内存。提高加载速度 :云服务器对指定域名下的CDN资源智能压缩网络加速提高加载速度 : 缓存常用资源,比如主场景 主要的功能界面,字体,音乐等提高加载速度和降低内存占用:酌情删除部分动画帧序列背景衬托图风格尽量通用,大小适中不要过大,可以通过程序缩放适配大小。一些ICON使用8bit 背...原创 2020-12-02 11:07:35 · 1913 阅读 · 0 评论 -
换装心得-DragonBones
换装层级遮挡处理1场景举例: 手握武器,剑柄在大拇指和四指之间。 这时处理方式是把拇指和四指分两部分,程序单独调整层级(setChildIndex)换装层级遮挡处理2场景举例: 帽子带帽尾巴,尾巴在头发后面,帽檐在头发前面 这时处理方式是把帽檐和帽子PNG分离,两个json文件控制显示隐藏(displayIndex)基础换装分为局部换装(武器翅膀头饰等)和全局换装(服饰)具体参考官方文档:https://docs.egret.com/dragonbone...原创 2020-06-09 16:35:52 · 569 阅读 · 0 评论 -
职场沟通记录
”我以前写的那个更新工具卡,没用到多线程““这小工具也用得着多线程?” --质疑的态度‘哦?用多线程的好处是什么,可以提高CPU利用率是吧,我要试试’ --仔细思考谈话对方的思路和想法...原创 2020-06-06 22:07:25 · 246 阅读 · 0 评论 -
30 岁的超级玛丽怎样改变了游戏行业?
30 岁的超级玛丽怎样改变了游戏行业?文/王杰夫马里奥是明星、是劳模、还是游戏业的拯救者马里奥大叔刚刚度过了他的 30 岁的生日。而立之年的马里奥依然风头,单从 2014 年算起,也在超过 10 款游戏中露了脸。而最近推出的 30 周年纪念作《超级马里奥制造》更是火遍了各大游戏网站。 在历史本就不长的电子游戏领域中,马里奥毫无疑问是最悠久的、也最知名的游戏形象,就算转载 2017-06-07 19:03:10 · 1590 阅读 · 0 评论 -
多人在线网络游戏实现细节
作为一个程序员,你有没有想象过多人游戏是如何实现的?在外行人看来游戏很神奇:两个或者更多的玩家在网络上分享共同的经历,就像他们真实的存在于相同的虚拟的世界一样。游戏看起来犹如一个巨大的魔术,奇妙而又刺激,但作为一个开发人员我们知道,真实的情况和我们所看到的并不一样,那只是一种错觉。你感受到的共享现实,实际上是在那个时刻内,由你自己的独特视角和位置所感知的近似情况。转载 2017-06-02 13:16:22 · 7530 阅读 · 0 评论 -
我为什么鼓励工程师写blog
原文文/JoeyChen工程师该怎样才能突破自己的能力瓶颈?写 blog!工程师该怎样精进自己在职涯上所需要的能力?写 blog!工程师该怎样才能保持学习与成长的动能?写 blog!工程师该怎样才能证明自己的潜力与特质?写 blog!工程师该怎样才能发挥与养成影响力?写 blog! 本文打算老生常谈,从几个很实务的方面来整理,写 blog 对你有什么好处。如果你不需要转载 2017-04-26 22:36:56 · 764 阅读 · 0 评论 -
clean code 读书笔记
读后感:第一章 整洁的代码1.1 要有代码人工智能也替代不了包含特殊需求的代码,所以代码永存。1.2 糟糕的代码阅读糟糕的代码犹如在沼泽地行走一样令人浑身不知在;糟糕的代码会毁了一家公司,不要因为时间紧任务重就忽略工整的代码;一个患者需要立刻做手术,他可以允许医生不洗手立刻开始,但是专业的医生清楚细菌感染的风险,所以专业的医生都有严谨的态度。1.3 混乱的代价原创 2017-03-05 23:30:35 · 410 阅读 · 0 评论 -
解决TCP网络传输“粘包”问题(经典)
转载链接:http://blog.youkuaiyun.com/zhangxinrun/article/details/6721508当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP转载 2016-12-22 09:26:32 · 925 阅读 · 0 评论 -
unity3D学习笔记之五:Update FixedUpdate LateUpdate 区别
Update() 每一帧调用 根据终端设备性能不同,每帧用时会有差别 FixedUpdate()定时器 固定时间间隔被调用 LateUpdate()所有Update后被调用 Unity后台主线程将 Update LateUpdate 制作成两个多线程 先去执行Update的线程,等Update 执行完毕后 在去执行LateUpdate线程 . eg1: LateUpdate主要是调原创 2017-06-20 21:33:02 · 980 阅读 · 0 评论 -
不重复随机数列的生成算法
本文将讲述一个高效的不重复随机数列的生成算法,其效率比通常用hashtable 消重的方法要快很多。作者:eaglet 转载请注明出处。首先我们来看命题:给定一个正整数n,需要输出一个长度为n的数组,数组元素是随机数,范围为0 – n-1,且元素不能重复。比如 n = 3 时,需要获取一个长度为3的数组,元素范围为0-2,比如 0,2,1。这个问题的通常解决方案就是设计一个 h转载 2017-07-12 07:42:34 · 1413 阅读 · 0 评论 -
unity3D学习笔记之七 RectTransform与屏幕适配
市面上的移动游戏UI布局分为两种: 1.全屏铺满 2.小屏居中 两种布局引出两种布局方式 相对布局和绝对布局 相对: Image相对Panel顶部距离20 即Image尺寸跟随Panel尺寸改变 唯一固定的是距离顶部的距离20不变 此种对应全屏铺满的UI,比如返回按钮始终在右上角20像素出。 绝对: Image位置不随Panel变化 此种布局对应小屏居中 在不同的分辨率上 屏幕变原创 2017-07-03 22:55:50 · 3035 阅读 · 0 评论 -
如何系统的学习 Unity 3D 中的 shader 编写(nvidia cg 编程)?
如何系统的学习 Unity 3D 中的 shader 编写(nvidia cg 编程)?相信一定也有很多做unity3d开发的朋友对shader这一块有疑问。unity3d算是比较新的引擎,最近手游又比较火,很多unity3d程序猿应该是从其他专业转过来的,比如本人以前就是搞java web开发的,所以对这一块的知识体系不太了解。我看了nvidia官网上的 The Cg T转载 2017-08-24 11:51:39 · 837 阅读 · 0 评论 -
unity3D学习笔记之十二 换装系统心得
换装系统 游戏中英雄的形象由头部,身体,四肢组成,每个部位可以佩戴不同的饰品,比如发型,头饰,武器,衣服,翅膀等。这些饰品需要支持替换,卸载。 我们来单独看一个部件-武器 唯一的组件是SkinnedMeshRenderer 它主要的三个成员是Mesh(网格),Bone(骨骼),Marital(材质);一只Model都是由许多个Mesh组成的,Bone的作用是将Mesh中的顶点附着(原创 2018-05-09 17:10:22 · 3366 阅读 · 3 评论 -
七个对我最好的职业建议
原文链接七个对我最好的职业建议(精简版)作者:Nicholas C. Zakas译者:阮一峰原文网址:https://www.nczonline.net/blog/2013/10/15/the-best-career-advice-ive-received/一、不要别人点什么,就做什么我的第一份工作,只干了8个月,那家公司就倒闭了。我问经理,接下来我该怎么办,他说:"小伙子,千万不要当一个被人点菜...转载 2018-05-10 19:52:59 · 474 阅读 · 0 评论 -
字符编码:GBK、GB2312、UTF-8
原文链接一、各编码间的区别UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在...转载 2018-05-04 18:16:24 · 9897 阅读 · 1 评论 -
游戏中红点提醒模块设计
红点提醒的要求是达到条件需要在按钮上显示红点 提醒玩家操作达到条件->显示红点 这是明显的观察者模式“观察者”模式是我们在开发的时候经常需要用到的。使用Watch.js那么我们就可以实现在“每当对象属性改变的时候,执行你的函数”。设计思路按钮上绑定 注册监听 何时显示何时隐藏红点操作后更新 操作响应/材料变化 变量更新难点:1.功能复杂的模块是层层嵌套的关系比如:人物页签-...原创 2019-08-31 16:48:44 · 2658 阅读 · 1 评论 -
H5游戏项目开发总结
今年5月1日公司立项准备开发一款SLG的H5游戏。经过调研决定使用LayaAir引擎。 目前游戏第一轮测试已经结束。简单回顾一下: 明确要求赶在暑期档上线,由于之前一直是用cocos2dx-lua版本,所以对于H5零基础的我来说还是不小的挑战。引擎确定之后,开始着手熟悉API。开发过程期间遇到的相关问题引擎技术组的反馈都很及时。 由于是策略类的游戏,所以对于数值公式的计算尤其之多,所以客户端,原创 2016-09-10 20:44:45 · 3668 阅读 · 0 评论 -
离职换来的领悟:人生没有最佳时机
用离职换来的领悟:人生没有最佳时机 每个人都有感到失落迷惘的时候。人生用专制又霸道的方式运行着,每当我们心想一切尘埃落定、生活稳固的时候,生活总爱给我们惊喜,粉碎我们短暂的安逸,让我们不得不重新思考—— “我走对路了吗?” “我能够赚更多钱、爬到更高的位置吗?” “这是上天为我准备的吗?”这些体会,谁有少过呢?在31岁以前,我的工作是客服人员,而卑微如仆的工作条件,逐渐啃食转载 2016-11-16 13:35:48 · 560 阅读 · 0 评论 -
本地化处理 轻松支持多国语言
获取操作系统当前使用的语言,本地化 轻松支持多国语言原创 2014-03-11 23:26:16 · 2364 阅读 · 0 评论 -
编码转换
1.UTF-8 转换 Unicode 在编写FTP Client时,发现通过recv获取的数据是采用UTF-8方式进行编码的,直接用Unicode方式进行显示时会发生错误。采用MultiByteToWideChar也无法正确转换(default是Ascii to Unicode。是我的设置问题?没有仔细研究)。 因此学习了下UTF-8的编码原理,参考如下:标准的UTF-8是有原创 2014-03-11 23:49:33 · 1241 阅读 · 0 评论 -
智能手机屏幕尺寸和分辨率一览表
2.8英寸分辨率为640x480(VGA) 像素密度286PPI 3.2英寸分辨率为480x320(HVGA) 像素密度167PPI 3.3英寸分辨率为854x480(WVGA) 像素密度297PPI 3.5英寸分辨率为480x320(HVGA) 像素密度165PPI 3.5英寸分辨率为800x480(WVGA) 像素密度267PP原创 2014-01-23 18:21:12 · 3104 阅读 · 0 评论 -
IOS学习之路之 音效处理
来吧,尽情的在知识的海洋里遨游!原文链接:http://www.cnblogs.com/bandok123/archive/2012/03/02/2376988.html原文链接:http://www.cnblogs.com/bandok123/archive/2012/03/02/2377023.html原文链接:http://www.cnblogs.com/bandok123/ar转载 2013-08-13 00:21:28 · 866 阅读 · 0 评论 -
谈谈对攻读计算机研究生的看法
原文链接:http://www.cnblogs.com/pianist/archive/2013/09/15/3323312.html 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你转载 2013-09-16 00:06:36 · 1058 阅读 · 0 评论 -
c++基础 之 typedef 用法总结
用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR; PCHAR pa, pb; 这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型原创 2013-09-11 22:26:39 · 834 阅读 · 0 评论 -
c++基础积累 友元friend的使用
通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为public(共用的),然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它,c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作,避免把类成员全部设置成public,最大限度的保护数据成员的安全。 友元能够使得普通函数直接访问类的保护数据,避免了类成员函转载 2013-08-18 10:01:45 · 777 阅读 · 0 评论 -
cocos2d-x 内存优化之prv.ccz plist 文件加载
我在项目中遇到的问题解决了,我想总结的却说不出来,还好有人替我表达了。原文链接:http://www.himigame.com/iphone-cocos2d/465.html 首先对于使用过精灵的童鞋很熟悉CCSpriteBatchNode,至少大家都会知道它能优化精灵,但是至于优化原理这里简单说下:一般使用精灵CCSprite的时候,都是直接使用[CCLayer* addChild:原创 2013-08-15 16:01:50 · 2590 阅读 · 0 评论 -
每天学 运维 之 ARPU
运营管理 ARPU原创 2014-03-05 17:54:51 · 1302 阅读 · 0 评论 -
cocos2d-x屏幕 适配
从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。有以下相关接口:CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式 CCDirector::sharedDirector()-原创 2014-03-10 20:33:00 · 1918 阅读 · 0 评论 -
几种常用加密算法比较
DES加密算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据转载 2016-09-13 11:52:11 · 8839 阅读 · 0 评论 -
对RSA加密的理解
背景:最近在看唐巧的书>有一段谈到RSA加密算法的黑客在咖啡馆或机场等一些公共场所,用自己的电脑设置一个与该场所名字相同的免费 WiFi,那么受害者只要不小心使用了该 WiFi,就可能泄漏自己的明文密码。大多数普通人, 都会使用一样的密码登录他的所有的账号,这就意味着他的其他账号,例如淘宝或网上银 行账号也有被盗的风险。正确的做法应该是这样:事先生成一对用于加密的公私钥,客户端在登录时,使原创 2016-09-13 10:08:50 · 2410 阅读 · 0 评论 -
JAVA实现AES加密
原文链接:http://blog.youkuaiyun.com/hbcui1984/article/details/52012471. 因子 上次介绍了《JAVA实现AES加密》,中间提到近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组转载 2016-09-13 10:35:05 · 3821 阅读 · 0 评论 -
random伪随机数的生成
昨天一朋友问了下我关于他写的一段程序的错误. 其中有一个问题就是关于随机数的.他的代码如下(C++代码). C/C++ codefor (int i =0;i n;++i){ srand((unsigned)time( NULL )); int r = rand()%100; cout r ",";}这里很明显他是想输出一串小于100转载 2016-07-06 08:47:53 · 1079 阅读 · 0 评论 -
Socket通信原理和实践
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?转载 2016-06-01 07:02:17 · 416 阅读 · 0 评论 -
对递归的理解归纳
原文链接:http://www.nowamagic.net/librarys/veda/detail/2314/** * 观察归纳法我们发现:递归的数学模型就是归纳法: * 归纳法适用于把一个问题转换为他的子问题,而他的子问题又转化为子问题; * 而且我们发现这些问题都有一个模型:存在相同的逻辑归纳处理项。 * 当然也有一个例外:递归结束处的处理方法不适用于这个模型。 *转载 2016-05-02 23:24:43 · 2484 阅读 · 0 评论 -
Mac下GitHub安装及使用教程
首先介绍下Git和GithubCentralized Version Control Systems,简称 CVCS 集中化的版本控制系统 这类系统诸如 CVS Subversion以及Perforce。 这类系统都有一个集中管理的服务器,保存所有文件的修改版本,协同工作的同事通过客户端连接到这台服务器,取出最新的文件或者提交更改。Distributed Version Control Sy原创 2015-07-11 19:04:56 · 2552 阅读 · 0 评论 -
矩形旋转
CCSprite*sp1=CCSprite::create("boss2A.png"); this->addChild(sp1); sp1->setAnchorPoint(CCPointZero);默认位置:左下角(ccp(0,0))默认锚点:中心位置(ccp(0.5,0.5)) 测试的矩形框是以左下角为锚点的。位置是当初设置sprite原创 2013-08-06 19:48:52 · 2249 阅读 · 0 评论