项目
文章平均质量分 79
SherlockLoveCode
这个作者很懒,什么都没留下…
展开
-
利用Lua元表减少table冗余数据
lua配置表优化前不久发现项目里的Lua配置表有不少配置项都是重复的,虽然这些重复项不会影响游戏在运行时的内存大小(Lua中同一字符串的不同引用实际上占用同一块内存),但是却会增大配置文件的大小。...原创 2020-11-29 13:55:37 · 401 阅读 · 0 评论 -
程序员修炼之道(二)
程序员修炼之道(二):从未验证到已验证最近被一个诡异的问题纠缠了两三天:在我为一个没有父节点的cocos2d中的精灵对象Sprite添加序列帧动画Animate时,该动画不仅没有生效,原先的Sprite还跟着一起消失了。现在已经解决了问题,但其实原因一点都不复杂,在技术方面可借鉴的地方不多,所以我就不打算把它归为一篇可参考的技术类文章来写,而是强调解决这个问题的整个过程,以及通过该过程自己总结出的方法论。大体流程可以概括为以下几步,由于每个实际项目的应用场景不尽相同,可参考性不强,了解一下来龙去脉就原创 2020-08-25 18:28:15 · 265 阅读 · 0 评论 -
cocos2d-x中的动画对象Action无法正常播放
出现该问题后自顾自折腾了一阵,无果,向前辈寻求帮助。大佬果然是大佬,不到半小时后告诉我:“我这看的时候发现那个Sprite对象被释放掉了,我暂时查不出来为啥。但是你可以改用另一个接口XX,这样就能用了。”我当然选择先解决问题以应付策划的无情摧残,然后该问题暂且搁置。时隔多日,摸鱼的时候想起这个问题,那自然是先根据大佬曾经告诉我的现象开始查。cocos2d是基于引用计数设计Node节点内存管理方案的,然后看代码发现该Sprite确实做了retain操作,在一帧结束后Sprite的计数为1,按理说肯..原创 2020-08-24 20:29:51 · 446 阅读 · 0 评论 -
程序员修炼之道(一)
程序员修炼之道(一)最近两周突然就忙了起来,需求一个接着一个,短时间内还不能完全适应的我有些手足无措心力交瘁,不过通过加班总归是缓了过来。所幸产出的代码经过师父的review之后没啥大问题,遂打算抽点时间总结一下近期的工作经验。由于本人挺喜欢《程序员修炼之道》这本书(现在第二版已经由云风翻译完成),个人认为里面提到的不少观点和建议对程序员(尤其是我这种彩笔)大有裨益,而且这些宝贵的经验也能在工作实践中得到反向验证,故此类涉及程序员解决问题的方法论的相关问题探讨都会以这本书的名字命名,这篇博客算是开个头吧原创 2020-07-28 17:28:47 · 308 阅读 · 0 评论 -
基于函数式编程的调试工具
基于函数式编程的调试工具需求在项目开发过程中发现两个问题:内部调试通常需要使用GM指令(比如一键满级满钱满技能等)。但是目前用的是在游戏内置的聊天框中输入文本的方式调用GM指令,体验不好而且效率不高。每次联调过程中,当需要确认一些服务器消息时总是必须加入打印日志的相关代码,然后重新编译(即使是LuaJIT也需要花费不少时间)。枯燥乏味的重复行为在无形中蚕食着开发人员的精力和耐心,它们是项目开发里的蚊蝇和蛆虫,解决上述问题迫在眉睫。刚好在前些时间了解了一些有关函数式编程的知识,本着实验的目的,先原创 2020-06-23 14:35:49 · 284 阅读 · 0 评论 -
Unity导航网格代理NavMeshAgent
Unity导航网格代理NavMeshAgent用法将场景内所有障碍物(地形、树木、房屋等)标记为Navigation static,以使其参与Unity导航网格的烘焙过程。在Unity中打开Windows–>Navigation面板,选择bake选项,设置好参数后点击bake,以烘焙得到整个场景的导航网格navmesh。只有挂载了NavMeshAgent组件的GameObject才可在烘焙好的navmesh中进行寻路。添加完NavMeshAgent组件后,就能通过调用其SetDestin原创 2020-06-16 17:29:24 · 1499 阅读 · 0 评论 -
在Lua中访问C#枚举对象
在Lua中访问C#枚举对象最近在unity中尝试Lua与C#的互调(用xlua生成相关的binding代码),在Lua中访问C#侧产生的enum枚举对象时碰上个问题:按照xlua提供的绑定接口,与用户自定义类型(class、struct)相同,lua侧现在通过生成一个userdata的方式引用C#侧的enum对象,这说明对xlua而言,C#中的enum也被视作一个class来制定binding规则。这就导致我不能想当然地直接将C#中的某个枚举对象作为lua中的number处理,就像这样:然后就开原创 2020-06-02 15:50:53 · 1742 阅读 · 1 评论 -
使用VisualStudio自带的MSVC编译C/C++
文章目录使用MSVC编译C/C++一、通过命令行进行编译(失败)二、通过VisualStudio进行编译(成功)三、分析(猜测)原因四、可供查阅的相关链接使用MSVC编译C/C++最近看到项目里换了个解析protobuf的新库,刚好自己也看完了一遍《链接、装载与库》,基于理论结合实践的学习原则,便心血来潮就想要不自己也编一下搞个demo用一下试试看。很自然地来到该库作者的Github主页,然后...原创 2020-04-17 17:05:23 · 2803 阅读 · 0 评论 -
游戏性能(掉帧,内存过高)问题
前两个星期恳求一个显示器,好缓解我的眼睛疲劳问题。今天居然直接给我配了个苹果一体机。。。。(因为没有多余的显示器+该MAC无人使用) 近期由于新游刚上线,暴露出来的问题不少,上头在写新需求的同时给我分配了几个性能优化的工作,具体就是争取降低内存占用以及避免掉帧。 网上结合书本研究了下cocos的大致渲染流程和机制,除了默认的“同一层级按先添加先绘制的队列顺序”,原创 2017-09-27 23:35:49 · 3123 阅读 · 0 评论 -
项目实训
即将开始学校安排的第二周项目实训,有几点还是很值得提一下的:对人:1.结识了组里的三位隔壁班的男同胞们,"都"很有码农的气质,作为同事质量还是挺高的。2.同一间机房四五十号人,沟通的机会多了很多,但目前由于项目原因,我仍偏向于组内,偶尔会有研究其他人行为和心理的观察行为(这是我的业余爱好)。3.果然有不少跨专业的同学,项目经验一下就看出差距来了,不过大部分还是尝试很认真地去学习的。原创 2017-03-05 14:58:35 · 316 阅读 · 0 评论 -
Android版本升级后创建项目报错
最近马上安卓笔试,居然还要一个个地补实验报告。。。 环境搭建、HelloWorld和媒体播放器小项目,嗯。。这些都不是问题。等到最后一个搭建一个Android大项目(好像是关于图书的)的环境的时候,其中有个需求是Android端向Web端发起用户登录验证,然后Web端返回结果。 问题来了,我自己电脑上是以前使用的Android 2.3.3版本,就需要另外安装与该项目匹配的And原创 2016-11-25 16:44:33 · 383 阅读 · 0 评论 -
一个迷你音频播放器项目
研究生入学后碰上的第一个老师布置的Android小项目,也是借此机会复习一下本科时接触的安卓开发,主要包括两个部分:一、音乐播放器利用安卓提供的MediaPlayer媒体播放类实现简单的开始、暂停、以及停止指定音乐文件的播放功能,要求暂停后点击开始能够继续播放,停止后点击开始能够从头开始:1) 基础的界面布局和控件(开始、暂停、停止三个按钮)设计,以及所有按钮相应的事件监听代码原创 2016-09-22 16:27:56 · 437 阅读 · 0 评论