- 博客(22)
- 收藏
- 关注
原创 提问的智慧
今天冒着被鄙视的风险向同事提了一个问题,涉及到的知识很基础,但我们在描述和理解上很难达成一致,最后也不了了之。随后在知乎上看到一篇关于“为何有些程序员很傲慢”的有趣文章,然后就发现了一个挺有价值的github地址, 是关于如何提问的一些方法论和技巧,在此记录一下:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md...
2021-01-04 17:18:43 137
原创 利用Lua元表减少table冗余数据
lua配置表优化前不久发现项目里的Lua配置表有不少配置项都是重复的,虽然这些重复项不会影响游戏在运行时的内存大小(Lua中同一字符串的不同引用实际上占用同一块内存),但是却会增大配置文件的大小。...
2020-11-29 13:55:37 406
原创 程序员修炼之道(二)
程序员修炼之道(二):从未验证到已验证最近被一个诡异的问题纠缠了两三天:在我为一个没有父节点的cocos2d中的精灵对象Sprite添加序列帧动画Animate时,该动画不仅没有生效,原先的Sprite还跟着一起消失了。现在已经解决了问题,但其实原因一点都不复杂,在技术方面可借鉴的地方不多,所以我就不打算把它归为一篇可参考的技术类文章来写,而是强调解决这个问题的整个过程,以及通过该过程自己总结出的方法论。大体流程可以概括为以下几步,由于每个实际项目的应用场景不尽相同,可参考性不强,了解一下来龙去脉就
2020-08-25 18:28:15 270
原创 cocos2d-x中的动画对象Action无法正常播放
出现该问题后自顾自折腾了一阵,无果,向前辈寻求帮助。大佬果然是大佬,不到半小时后告诉我:“我这看的时候发现那个Sprite对象被释放掉了,我暂时查不出来为啥。但是你可以改用另一个接口XX,这样就能用了。”我当然选择先解决问题以应付策划的无情摧残,然后该问题暂且搁置。时隔多日,摸鱼的时候想起这个问题,那自然是先根据大佬曾经告诉我的现象开始查。cocos2d是基于引用计数设计Node节点内存管理方案的,然后看代码发现该Sprite确实做了retain操作,在一帧结束后Sprite的计数为1,按理说肯..
2020-08-24 20:29:51 450
原创 程序员修炼之道(一)
程序员修炼之道(一)最近两周突然就忙了起来,需求一个接着一个,短时间内还不能完全适应的我有些手足无措心力交瘁,不过通过加班总归是缓了过来。所幸产出的代码经过师父的review之后没啥大问题,遂打算抽点时间总结一下近期的工作经验。由于本人挺喜欢《程序员修炼之道》这本书(现在第二版已经由云风翻译完成),个人认为里面提到的不少观点和建议对程序员(尤其是我这种彩笔)大有裨益,而且这些宝贵的经验也能在工作实践中得到反向验证,故此类涉及程序员解决问题的方法论的相关问题探讨都会以这本书的名字命名,这篇博客算是开个头吧
2020-07-28 17:28:47 310
原创 基于函数式编程的调试工具
基于函数式编程的调试工具需求在项目开发过程中发现两个问题:内部调试通常需要使用GM指令(比如一键满级满钱满技能等)。但是目前用的是在游戏内置的聊天框中输入文本的方式调用GM指令,体验不好而且效率不高。每次联调过程中,当需要确认一些服务器消息时总是必须加入打印日志的相关代码,然后重新编译(即使是LuaJIT也需要花费不少时间)。枯燥乏味的重复行为在无形中蚕食着开发人员的精力和耐心,它们是项目开发里的蚊蝇和蛆虫,解决上述问题迫在眉睫。刚好在前些时间了解了一些有关函数式编程的知识,本着实验的目的,先
2020-06-23 14:35:49 286
原创 Unity导航网格代理NavMeshAgent
Unity导航网格代理NavMeshAgent用法将场景内所有障碍物(地形、树木、房屋等)标记为Navigation static,以使其参与Unity导航网格的烘焙过程。在Unity中打开Windows–>Navigation面板,选择bake选项,设置好参数后点击bake,以烘焙得到整个场景的导航网格navmesh。只有挂载了NavMeshAgent组件的GameObject才可在烘焙好的navmesh中进行寻路。添加完NavMeshAgent组件后,就能通过调用其SetDestin
2020-06-16 17:29:24 1508
原创 在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 1758 1
原创 使用VisualStudio自带的MSVC编译C/C++
文章目录使用MSVC编译C/C++一、通过命令行进行编译(失败)二、通过VisualStudio进行编译(成功)三、分析(猜测)原因四、可供查阅的相关链接使用MSVC编译C/C++最近看到项目里换了个解析protobuf的新库,刚好自己也看完了一遍《链接、装载与库》,基于理论结合实践的学习原则,便心血来潮就想要不自己也编一下搞个demo用一下试试看。很自然地来到该库作者的Github主页,然后...
2020-04-17 17:05:23 2835
原创 浅析Cocos2d-x引擎的动作类Action
我用是3.14.1的版本,不过总体上应该大同小异,然而即使有大的区别我目前也不知道,因为我只看了这个版本的????。直接上图,大致的Action类架构就是这样,如果有看过Cocos源码的朋友都知道它实际上并不复杂的,这里我就按照自己的理解,从整体设计到具体的局部实现上简单阐述重要的几点:一、Action类由ActionManager类通过结构体tHashElement(_hashElemen...
2018-10-15 22:37:37 283
原创 游戏性能(掉帧,内存过高)问题
前两个星期恳求一个显示器,好缓解我的眼睛疲劳问题。今天居然直接给我配了个苹果一体机。。。。(因为没有多余的显示器+该MAC无人使用) 近期由于新游刚上线,暴露出来的问题不少,上头在写新需求的同时给我分配了几个性能优化的工作,具体就是争取降低内存占用以及避免掉帧。 网上结合书本研究了下cocos的大致渲染流程和机制,除了默认的“同一层级按先添加先绘制的队列顺序”,
2017-09-27 23:35:49 3128
原创 代码心得1
今日完成的需求中有用到读写文件的操作,我也很原始地使用了Lua自己的读写文件操作(io和file)。 在安卓上编译的时候出现了问题:因文件路径不对引起的读写错误。而项目中所设置的默认文件查找路径,从win32到安卓上又不一样了,由于安卓真机调试的繁琐以及本人的学艺不精,折腾了半天也没有找到合适的解决方案。 后来经师兄稍加研究,推荐我使用cocos自带的跨平台读写文件的API,也
2017-09-12 20:42:27 171
原创 实习一个月
CSDN写东西居然不能TAB : (,两个汉字=四个空格。。。嗯。。。 这一个月来我已经在尝试接受和做出改变,从学生逐渐转型到上班族,发现自身思考问题还是偏向理论化,等到真正碰上难题的时候处理的往往并不是很好。 上班工作、与同事相处、试着追求女性。。。个人阅历明显不够用了。这就好像,嘿,我知道我必须处理这些问题,可一旦我开始着手去做,好吧,并不是很容易。 你很难在大脑
2017-07-28 22:06:26 230
原创 研二实习第一天
上周五的首次部门聚餐经历那是相当的印象深刻: 技术部和美术部两桌简直了...截然不同的两种人群,几年的代码生涯沉淀出来的程序猿气质看起来还是很根深蒂固的,不论男女。但是酒桌文化反倒不是很浓厚,同事们的关系给我的感觉是比较简单,忙着写程序反倒没太多工夫培养小心思了。 不过看到不少笑的像两百斤左右的孩子的同事,我也清楚地认识到我不应该成为这样的人。 并不是说好与坏,而是,
2017-07-03 20:29:45 1330
原创 项目实训
即将开始学校安排的第二周项目实训,有几点还是很值得提一下的:对人:1.结识了组里的三位隔壁班的男同胞们,"都"很有码农的气质,作为同事质量还是挺高的。2.同一间机房四五十号人,沟通的机会多了很多,但目前由于项目原因,我仍偏向于组内,偶尔会有研究其他人行为和心理的观察行为(这是我的业余爱好)。3.果然有不少跨专业的同学,项目经验一下就看出差距来了,不过大部分还是尝试很认真地去学习的。
2017-03-05 14:58:35 317
原创 随笔
元旦晚会办完了,作为走秀的核心成员,我成功地用眼神俘获了不少粉丝,诶嘿嘿。最爱的神探夏洛克更新了,结果第一集玛丽就鸡腿了,哎。难得有个不错的女孩子追,再三犹豫之后我还是决定谈谈看。然后我就发现,我总把对男女之间暧昧的抗拒说成是"我没谈过恋爱,缺乏经验,不知道怎么做"。可笑的是,我真的是不知道该怎么做,这还得多谢她教会了我一点。你觉得这些琐碎的东西会影响你思考,结果什么都
2017-01-14 21:04:49 225
原创 Android版本升级后创建项目报错
最近马上安卓笔试,居然还要一个个地补实验报告。。。 环境搭建、HelloWorld和媒体播放器小项目,嗯。。这些都不是问题。等到最后一个搭建一个Android大项目(好像是关于图书的)的环境的时候,其中有个需求是Android端向Web端发起用户登录验证,然后Web端返回结果。 问题来了,我自己电脑上是以前使用的Android 2.3.3版本,就需要另外安装与该项目匹配的And
2016-11-25 16:44:33 385
原创 看看你自己!
国庆回来就很难找回状态,篮球赛、讲座、作业、考试。。。一些我认为不那么重要的事情占据了大部分时间(好吧我也爱打球),而当有空看书的时候却无法静下心来。 我看到好多不错的女孩,也遇见了少有的气质型,诶嘿嘿。 她们的言谈举止很温婉优雅,笑起来也是很迷人。 然而她们都有男朋友了。 艹。 我开始意识到长时间玩游戏之后带给我的失落和空虚,
2016-11-16 19:21:40 350
原创 读完《暗时间》后的一些想法
必须强调的:高度专注远比长时间心不在焉的学习有效率的多。这里注意,细枝末节的琐事大可暂时抛弃不管(反正它们会自己找上门),以争取最大精力投入优选级较高的事。学习、深入了解之前必须斟酌其必要性。这东西学过来没卵用,我为什么还要去了解它?学习知识需注重其概念、本质、以及总体架构上的理解,就好比了解一个人先从其外貌、举止及三观开始。经常结合记忆进行类比思考(比如上一条)。我,或是我周围的
2016-09-29 17:01:30 396
原创 《游戏设计梦工厂》开啃!
最近刚入手《游戏设计梦工厂》,也是很感谢挚友能给我推荐这本书,开篇第一章,30页,好书!这时候网瘾又有点犯了,好像打游戏啊,哎。体验。玩游戏多年的我自然对哪些游戏给予我独特、新奇的体验印象深刻,但是有些时候就是说不出个所以然来。感谢《游戏设计梦工厂》以练习的方式让我能亲笔记录下来:魔兽世界:站在至高岭高耸入云的山顶,风暴之龙在四周盘旋,我竟因为险些坠崖而汗毛一竖。 我会为
2016-09-26 19:52:57 3293
原创 一个迷你音频播放器项目
研究生入学后碰上的第一个老师布置的Android小项目,也是借此机会复习一下本科时接触的安卓开发,主要包括两个部分:一、音乐播放器利用安卓提供的MediaPlayer媒体播放类实现简单的开始、暂停、以及停止指定音乐文件的播放功能,要求暂停后点击开始能够继续播放,停止后点击开始能够从头开始:1) 基础的界面布局和控件(开始、暂停、停止三个按钮)设计,以及所有按钮相应的事件监听代码
2016-09-22 16:27:56 442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人