- 博客(69)
- 资源 (8)
- 收藏
- 关注
原创 项目结构及编程规范
项目结构提到项目结构这点,其实它的重要程度很多人都忽视掉了,清晰合理的项目结构可以让多人开发更高效,越大的项目效果越明显;优秀的项目结构可以让人更好的沟通,让其它模块的人迅速熟悉和了解另一模块,还可以让新加入团队的人快速了解和掌握项目。
2017-12-22 10:39:00
1067
原创 在Egret项目中使用protobuf
protobuf简介ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。
2017-08-31 18:27:17
9038
1
原创 使用TypeScript积累自己的类库
现在除了Web项目外,很多游戏引擎都支持js,包括Egret、Cocos、Unity等,甚至服务器端也可以用node.js。所以很多时候我们是可以积累一套通用工具库在不同项目间,甚至是不同类型项目、不同引擎间通用,来提高我们的开发效率。但是js的规范性较差,可维护性不强,有很多弊端,采用TypeScript来开发和积累我们的类库是比较好的一种选择。
2017-08-22 19:48:49
4956
原创 编程和性格的关系
33.1 个人性格是否和编程相关软件开发过程中,人们很少注意个人性格问题,然而却是非常重要的一点,重要到取决定性作用。编程工作本质上是一项无法监督的工作,老板或上司无法强迫你成为好的程序员,很多时候他甚至无法判断你是否合格。如果你想有所成就,只能全凭自己,这涉及到个人性格问题。你无法提升自己的聪明程度,但性格在一定程度上可以改进。事实证明,个人性格对于造就出
2017-08-07 14:13:44
1159
原创 项目前期准备的重要性
工欲善其事,必先利其器。今天读《代码大全》的第3.1节(前期准备的重要性)后,感觉到项目的前期准备非常重要,但是仍然有很多管理者不重视项目的前期准备,往往上来就要求赶紧开发功能,速度出Demo。项目开发中总会有这种情况:项目开始一周后,程序仍然在搭底层,老板就会问“都一周了,怎么还一个功能都没出来?”,这种情况比比皆是,这里就要说一下项目前期准备的重要性。其实在项目的初期、中期、末期都应该强调质
2017-06-29 10:08:30
15938
原创 Qt学习笔记
前几天项目需要一个编辑器,现学现卖边查文档边用Qt写了个简单的编辑器供项目使用,编写过程中记录了一些笔记,都是些没有系统性的知识点。 - 在Qt中固定窗口大小//将最大窗口与最小窗口设置大小相同setMinimumSize(1280, 720);setMaximumSize(1280, 720);QString转char*QString name = "test";QB
2017-02-09 22:24:33
942
原创 设计模式在游戏开发中的应用之单例模式
单例模式1.通俗的定义 是指在运行中只有一个实例对象存在。2.结构图如下(图片来源与网络):3.游戏开发中的使用 游戏开发中单例模式的使用也是非常普遍的,比如在Cocos2d-x中的Director就是一个单例。比如游戏中的很多工具类都是做成单例或者静态类的方式来使用。 单例还有一种写法,很少
2016-11-16 19:18:36
1885
原创 设计模式在游戏开发中的应用之观察者模式
观察者模式1.通俗的定义 触发事件的一方不关心谁来处理,处理事件的一方不关心事件是从哪里来的。观察者模式就是让观察者与被观察者彻底解耦。2.2.结构图如下(图片来源与网络):3.游戏开发中的使用 当我们设计一个成就系统的时候,往往要在各个系统都要增加判断,比如杀死某种怪物多少只,新手往往可能这么写:public static KI
2016-11-12 16:44:28
3176
原创 设计模式在游戏开发中的应用之命令模式
设计模式在一些大型的软件系统中非常常用,用来处理复杂的结构和逻辑。游戏其实也是一个软件系统,也会有庞大的系统,复杂的逻辑关系,对设计模式的合理使用可以帮助我们更好的去组织各个系统模块,优化逻辑关系,使之可以更好的维护和拓展。本文对常用的设计模式在游戏中的应用进行讨论,而不对设计模式的原理进行过多的阐述了。首先先介绍的是命令模式。
2016-11-09 17:15:48
2118
原创 Google《重新定义公司》笔记
质疑精神:不要相信权威和经验,有合理的解决方案或者数据就要提出。快速沟通:直接点对点反馈问题,面对面交流,实现快速沟通。安排假期:给员工安排假期,尤其是骨干,让他抽身一两周,让其他人顶替一段时间。这样一来,不仅骨干会因假期而神清气爽、干劲十足,其代班人也得到了锻炼。靠技术洞见市场,想想5年后的市场是什么样子。招聘聪明、有激情、有趣、乐观、学习能力强的
2016-11-01 11:17:30
909
原创 Cocos2d-js中的简易MVC框架(五)MVC框架的使用
首先定义第一个场景:login.LoginScene = game.IScene.extend({ ctor:function (){ this._super(); }});以及该场景的中介者:login.LoginSceneMediator = game.SceneMediator.exte
2016-10-18 20:58:21
1958
原创 Cocos2d-js中的简易MVC框架(四)显示层View
View的功能比较简单,View在MVC结构中负责显示和接收事件。在Cocos2d-JS中Scene和Layer都是View,View只负责显示和接收事件,不负责处理逻辑。在框架中View的实现分为两类,一类是IScene继承自cc.Scene负责场景显示,另一类是IView继承自cc.Layer负责场景上的层显示。IScene和IView的实现如下:game.IScene = cc.Scen
2016-10-18 20:57:21
1118
原创 Cocos2d-js中的简易MVC框架(三)中介者Mediator
Mediator作为这套MVC框架的核心部分承载了大部分的功能。Mediator主要分三类:DirectorMediator,SceneMediator,LayerMediator。这三类Mediator都是继承自IMediator,IMediator的实现如下:/***************************************************************
2016-10-18 20:54:19
1109
原创 Cocos2d-js中的简易MVC框架(二)数据模型Model
模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。数据模型Model在MVC结构中扮演者非常重要的较色。 在我写的这套MVC结构中Model作为本地数据逻辑存储对象来使用,主要负责监听服务器数据返回、通知控制器修改视图、处理数据逻辑和保存数据对象。 IModel作为model的基类,主要实现接口如下:game.IMod
2016-10-18 20:52:38
1159
原创 Cocos2d-js中的简易MVC框架(一)框架简介
一、框架简介 今天我将把我写的一套适用于Cocos2d-JS的一套MVC框架分享给大家。首先我先简单介绍一下MVC,然后再逐步的介绍我写的mvc框架和在游戏中的具体应用。 MVC借用百度百科的解释: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据
2016-10-18 20:50:46
1567
原创 2014年总结--2015年计划
一、学习一种新的语言、框架或技术1.C++(初步掌握)2.cocos2dx:彻底转型(彻底转型成功)二、精益求精1.继续设计模式的学习和应用(对设计模式基本理解并能运用)2.继续代码重构,注意自己的代码风格(较注重设计和冲用)三、探索新领域1.移动应用领域(对移动开发有了较深了解)2.去了解openGL (没有展开)
2015-01-03 21:20:00
1096
原创 读书计划(10月~12月)
《C++ Primer》《深入理解C++11》《Effectuve C++》《计算机图形学》《OpenGL编程指南》
2014-09-24 22:06:41
1354
原创 c++笔试题两道,求解其中一道
1.Implement a functionthat prints the numbers from 1 to 100.But for multiples of three(3) print “Zif”insteadof the number and for the multiples of five(5) print “Nab”. For numbers whichare multiples
2014-09-19 10:46:58
2169
1
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2014-09-16 11:13:33
951
转载 字节对齐
编译过程中c++编译器为了提高存取速度,设置了在存储格式上的字节对齐。------------------------------------------------1.为什么设置字节对齐能提高存取速度------------------------------------------------
2014-09-15 17:09:57
985
转载 5种服务器网络编程模型讲解
本文介绍几种服务器网络编程模型。废话不多说,直接正题。1.同步阻塞迭代模型同步阻塞迭代模型是最简单的一种IO模型。其核心代码如下:12345678bind(srvfd);listen(srvfd);for(;;){ clifd = accept(srvfd,...); //开始接受客户端来的连接 read(clifd,buf,...);
2014-09-12 17:04:11
1811
原创 计算机图形学和OpenGL(一)OpenGL初步
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。(百度百科)
2014-09-09 14:07:42
5394
原创 C++ 实现链表常用功能
首先头文件,定义了链表的常用函数:typedef struct node { int data; struct node* next;} Node;class LinkListUtil{public: LinkListUtil(); ~LinkListUtil(); //create Node* createByArray(int arr[], int len);
2014-09-09 10:12:38
1686
原创 Cocos2d-x环境搭建
什么是Cocos2D-X Cocos2d-x于2008年2月诞生于阿根廷Cordoba市附近的LosCocos,最早是由Ricardo和他的朋友们用Python开发的。后来使用Objective-C被移植为iOS平台的Cocos2D-iPhone版本。现在又有了方便跨平台开发的Cocos2d-x。不仅如此,Cocos2D还被移植成了各个版本,形成了庞大的Cocos2D家族,例如
2014-03-07 14:10:32
1432
原创 2014年学习计划
一、学习一种新的语言、框架或技术1.C++2.cocos2dx:彻底转型到二、精益求精1.继续设计模式的学习和应用2.继续代码重构,注意自己的代码风格三、探索新领域1.移动应用领域2.去了解openGL四、业余代码或项目1.cocos2dx实现一套RPG游戏引擎。2.游戏通用工具。五、读书1.完
2014-02-13 22:29:21
1285
原创 2013年终总结
又一年匆匆的过去了,该对这一年来个总结了,首先还是对去年的一年计划进行个总结和点评吧:一、学习一种新的语言、框架或技术(95%):简单的学习了stage3d的基本原理和实现,然后深入的学习了一下基于stage3d的2D框架starling,并应用到工作中完成了个成功的项目。二、精益求精(75%):去年的目标是研究设计模式,结果是对主要的设计模式进行了深入了解,其他只是熟悉了一下,今后还
2014-01-04 22:58:23
1364
原创 starling性能优化
在项目开发的过程中总结了一下starling的性能优化方案:1. 不要频繁的读取显示对象的宽高:调用宽高属性时会调用显示对象的getBounds()方法,该方法会遍历该对象的所有子对象,重新计算宽高。在频繁使用宽高属性时,如没有特殊需要,最好把宽高保存到变量中,使用变量保存的值替代直接读取宽高属性。2. 扁平化的Sprites:starling在每一帧都会遍历所有对象检查它
2013-07-17 22:17:35
3000
原创 常用AS3性能优化总结
最近优化代码总结的几条基础优化方法:1.使用传统的for循环要比for each in方式遍历效率高,但前提是你使用传统的for循环时,将数组长度作为变量定义在循环外,在每次循环中读取数组或集合的长度是不明智的选择。2.根据下标读取数组时使用int类型效率较高。var num:Number = 5;arr[int(num)]; //较快arr[num]; //较慢
2013-06-04 23:01:42
2278
原创 2013年学习计划
一、学习一种新的语言、框架或技术1.stage 3D:flash 3D技术2.starling:基于flash 3D技术的2D渲染框架二、精益求精1.继续设计模式的学习和应用2.代码重构,注意自己的代码风格三、探索新领域1.3D游戏开发2.去了解openGL四、业余代码或项目1.SNS游戏框架五、读书1.完全读透一本技术书籍《设计模式:可复用面向对象
2013-02-23 11:16:43
1203
转载 Flash应用效率优化启示录Ⅰ
比起其他语言,Flash ActionScript3的上手过程要简单许多,对于很多人我想大多都是被这一点吸引进了咱们的圈子,很快就能看到很cool的效果,很好玩。不过实现一个效果容易,想对一个不论是简单还是复杂的应用做到运行时一直保持高效率地运转就是一个比较考验Flash开发人员的事情了。 “为什么我的应用越运行越卡?”这个问题有非常多的原因啦,我们一个个来看,对于效率优化也是
2013-01-01 23:22:43
960
原创 AS3定时任务管理工具类
用timer实现的定时任务工具类,有registerDelay和register俩个方法,一个是延迟任务,一个是立即执行的方法。该定时器依赖于flash的Enterframe帧频,请注意。使用前请调用init方法初始化。如有不足请指出。package com.core.timer{ import flash.display.Sprite; import flash.display.S
2012-12-31 22:27:53
2181
原创 我的2011--无悔
2011马上要过去了,短短的一年发生了太多的事情,从对技术的懵懂,到刚刚工作的迷茫,再到对自己的升华...... 我是一个三表院校的学生,在学校所学的东西有限,所以在2010年年末的时候决定去校外培训机构学习,这时我大三下学期。 培训的时候正好赶上过年,在家也没待几天,就买了火车票回去继续培训了,每天早起晚睡的就是想让自己在技术方面更加纯熟些,有的时候半夜三四点钟才
2011-12-23 21:38:50
4415
2
转载 学习Java,需要学习哪些内容?(转载于老刘博客)
最近,总有很多初学Java的朋友询问学Java要学哪些内容。回想8年前我学Java的时候,也是对此一无所知。看着哪黑呼呼的命令行窗口,怎么也猜不出它和企业开发有什么关系,也想象不出在控制台输出的乘法口诀1*1=1除了给幼儿园的小朋友做练习之外还有什么用途。 现在,经历了8年的开发,终于可以有一点东西,供当年和我一样喜欢Java,想从基于Java的事软件开发的朋友参考。 1
2011-12-03 16:12:24
2496
原创 C语言学习笔记(十)--指针
1变量指针变量的指针就是指向变量的地址,专门用来存放变量地址的变量称为指针变量。1.1指针变量的定义指针变量是专门用来存放地址的变量,C语言将它定义为指针类型。指针变量也是变量,但指针变量中存放的不是变量的值,而是地址。定义指针变量的一般格式是:类型标示符 *指针变量名;例如:int *pa,*pb;float *q;注:1这种语句仅仅是定义了指针变量,并没有明
2011-11-19 18:34:06
1859
原创 C语言学习笔记(九)--函数
1程序模块化在程序设计过程中大多数程序要比我们之前设计的程序复杂的多,传统的设计方法是“自定向下,逐步求精”的过程。该过程就是将一个大的问题按照层次分解成多个方便解决的小问题,直至各个功能模块,每个单独的功能模块可以单独设计,最后将所有的功能模块有机的结合成完整的程序。例子:计算出该日是该年的第几天。问题可以分解为:获取输入;判断平年闰年;判断每个月的总天数;得到总天数;例子代码:
2011-11-16 14:48:32
1591
原创 C语言学习笔记(八)--数组
1数组在程序设计过程中我们往往需要处理一批相同类型的数据,如果使用基本类型定义变量来储存,显然是不方便的,这是我们就需要使用数组了。2数组特点1.数组大小必须是确定的,不能随机改变的。2.数组的元素必须是相同类型的,不允许出现混合类型。3一维数组3.1一维数组的定义:类型说明符 数组名[常量表达式];例如:int a[10]数组的生命需要注意以下几个问题:
2011-11-13 20:08:14
1959
原创 C语言学习笔记(七)--循环程序设计
1循环语句1.1循环语句主要包括三种:while、do-while、for。2while语句处理循环2.1while语句基本形式:While(表达式){循环体语句}2.2执行流程:首先计算while表达式的值,当非零时执行循环体内的语句,执行完之后继续判断while表达式的值,如果非零,继续执行循环体,直到表达式值为零时,跳出循环,执行后续的语句。例子代码:#i
2011-11-11 14:09:47
1841
protobuf代码生成器
2017-08-31
webservice是用dom4j返回xml字符串
2011-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人