自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

X实验室

自强不息 厚德载物

  • 博客(26)
  • 资源 (15)
  • 论坛 (2)
  • 收藏
  • 关注

原创 自己动手写cocos2dx游戏引擎(八)——Node节点

UI都是树状形式组织。每一个小的控件就是一个小的节点。同时,为了表示父子节点的关系需要保存一个父节点。最简单的形式是这样的: #include <vector>class Node { Node *_parent;// 父节点指针 std::vector<Node*> _children;// 子节点指针};因为子节点的个数是不确定的,因...

2015-12-22 13:24:23 1162

转载 编程的智慧

编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。然而由于软件行业喜欢标新立异,喜欢把简单的事情搞复杂,我希望这些文字能给迷惑中的人们指出一些正确的方向,让他们少走一些弯路,基本做到一分耕耘一分收获。反复推敲代码既然“天才是百分之一的灵感,百分之九十九的汗水”,那我先来谈谈这

2015-12-22 08:40:41 786

原创 python内存管理

一 与C语言的对比先来看看C语言的一段函数:#include int main() { int a = 1; int b = 1; int c = b; printf("&a = %p\n", &a); printf("&b = %p\n", &b); printf("&c = %p\n", &c); return 0;}

2015-12-18 15:58:02 800

原创 23种设计模式C++实例之享元模式

为了避免产生过多的临时对象,创建一个对象,需要需要不同对象的时候设置不同的参数。#include #include using namespace std;/* * 享元模式 * 享元:共享元素 * 以共享的方式来避免大量拥有相同内容对象的开销 * 理解: * 对于经常使用且仅参数不同的对象,不是每次都重新创建一个不同的对象, * 而是创建一个对象之后,每次使用时

2015-12-16 11:16:23 846

原创 23种设计模式C++实例之组合模式

为不同继承层次和组合层次的类,提供统一的接口。#include #include /* * 组合模式 * 让单个对象和组合对象具有一致的接口 * */using namespace std;class IFile { public: virtual ~IFile() {} virtual void display() = 0; virtual int

2015-12-16 11:12:29 1135

原创 23种设计模式C++实例之桥接模式

桥接模式是为了解决类与类之间多对多的关系,使类与类直接的组合更加灵活。#include using namespace std;/* * 桥接模式 * 解决类与类之间多对多的关系 * */class Engine { public: virtual ~Engine() {} virtual void install() = 0;};class Engi

2015-12-16 11:03:08 932

原创 23种设计模式C++实例之装饰模式

装饰模式就是在不改变原有的类的情况下,给它添加功能。#include using namespace std;/* * 装饰模式:在不改变原类和使用继承的情况下,对类进行功能的增强 * 对类a功能的增强 * */class Car { public: virtual ~Car() {} virtual void go() = 0;};class Run

2015-12-16 10:58:40 857

原创 23种设计模式C++实例之代理模式

代理的目的是一般是为了防止直接访问某一个类,提供一种类似授权的机制。最典型的类中set和get方法实际上就是一种代理。#include using namespace std;/* * 代理模式:为其他对象提供一种代理,并以控制对这个对象的访问 * a类中b类,a类和b类中都实现协议类protocol * */class Shop{ public: virt

2015-12-16 10:54:08 820

原创 23种设计模式C++实例之适配器模式

适配器模式目的为了向客户提供他们所需要的接口,在适配器内部再调用我们自己已经实现的接口。#include using namespace std;/* * 电压适配器 * 将220v适配到18v * */class Cur18v { public: virtual void useCur18v() = 0;};class Cur220

2015-12-16 10:48:32 799

原创 23种设计模式C++实例之外观模式

为各个不同的类提供统一的接口,然后通过外观模式将其组合起来,对外提供一个统一的接口。#include using namespace std;/* * 外观模式:将子系统中的一组接口提供一个一致的界面 * 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 * */class SubsysA { public: void dothing() {

2015-12-16 10:25:19 800

原创 自己动手写cocos2dx游戏引擎(七)——自动释放池

上一节说到的Ref的引用计数时,没有说自动释放。自动释放功能相对来说比较复杂。首先有一个自动释放池。 #ifndef __AUTORELEASEPOOL_H__#define __AUTORELEASEPOOL_H__#include <string>#include <vector>#include "Ref.h"class Autorel...

2015-12-15 22:07:51 927

原创 自己动手写cocos2dx游戏引擎(六)——引用计数机制

这一节开始看看cocos2dx的内存管理。cocos2dx的内存管理使用的是引用计数机制,当对象创建的时候引用计数为1,retian一次引用计数+1,release一次-1,为了是delete。// Ref.h#ifndef __REF_H__#define __REF_H__class Ref { public: void retain();

2015-12-15 20:27:53 1144

原创 自己动手写cocos2dx游戏引擎(五)——渲染对象

上一节中,获取到了OpenGL的视图窗口,但是还没有办法渲染,现在我们把渲染对象加进来。// Renderer.h #ifndef __RENDERER_H__#define __RENDERER_H__#include <iostream>class Renderer { public: void render();};void ...

2015-12-15 19:04:15 698

原创 自己动手写cocos2dx游戏引擎(四)——窗体GLView

上一节中我们获取到了Director对象。通过这个对象我们可以获取到一个OpenGL的一个视图。在定义GLview之前,我们需要定义一个常用几何头文件。// Geometry.h #ifndef __GEMMETRY_H__#define __GEMMETRY_H__class Size { public: Size() {} S...

2015-12-14 23:06:05 1970

原创 自己动手写cocos2dx游戏引擎(三)——Director对象

上一节中,最后调用到了APPDelegate中的applicationDidFinishLaunching方法,在applicationDidFinishLaunching方法中,获取到了Director的一个实例。Director返回的是其子类DisplayLinkDirector的对象,其实现如下: class Director { public: v...

2015-12-14 21:50:34 1186

原创 自己动手写cocos2dx游戏引擎(二)——applicationDidFinishLaunching

上一节中,我们最终调用了Application的run方法。在run方法中,调用了applicationDidFinishLaunching方法,这个方法在哪里呢?可以看到在Application中并没有实现这个方法,这个方法来自Application的基类ApplicationProtocol。ApplicationProtocol中,将applicationDidFinishLau...

2015-12-14 21:07:39 2573

原创 自己动手写cocos2dx游戏引擎(一)——引擎入口

在网易的第二个项目已经上线快两个月了,已经在着手做第三个项目了。第一个项目是原生的app,使用的是cocos2dx2.2.4做的;第二个项目是一个html5游戏,在预研的时间同时用了cocos2dx和egret在做,最终选择了egret。第三个项目计划原生app和html5并重,鉴于egret的原生app才能跑十多帧,又换回了cocos2dx。之前一直在用cocos,现在打算重新研...

2015-12-14 20:31:10 2819

原创 23种设计模式C++实例之单例模式

单例模式就是让一个类智能创建一个对象。单例模式分为两种:懒汉式和饿汉式。// 懒汉式class Singleton { private: Singleton() { cout << "Singleton()" << endl; } public: ~Singleton() { cout << "~Singleton()" << endl; }

2015-12-11 19:44:46 928

原创 23种设计模式C++实例之原型模式

原型模式就是让对象拥有自我拷贝的功能,方便备份对象数据或者创建对象时设置过多的参数。#include using namespace std;/* * 原型模式:让对象拥有自我复制的功能 * 注意深拷贝和浅拷贝 * */class Programmer{ public: virtual ~Programmer() {} virtual Programmer*

2015-12-11 19:34:37 3077

原创 23种设计模式C++实例之创建者模式

把建造不同类型房子的过程与客户端调用分类#include using namespace std;/* * 建造者模式 * 对象的创建和对象的表示分离 * */class House { public: void setFloor(string floor) { m_floor = floor; } void setWall(string wall

2015-12-11 19:32:13 901

原创 23种设计模式C++实例之抽象工厂模式

抽象工厂模式在每一个系列的子系列中符合开闭原则,系列不符合。#include using namespace std;class Fruit { public: virtual ~Fruit() {} virtual void sayName() = 0;};class LocalApple: public Fruit { public: virtual void

2015-12-11 19:26:04 917

原创 23种设计模式C++实例之工厂方法模式

工厂模式有三种:简单工厂模式,工厂方法模式,抽象工厂模式,其中简单工厂模式属于23种设计模式,实例如下:#include using namespace std;/* * 不符合开闭原则,不是23种标准的设计模式 * */class Fruit { public: virtual ~Fruit() {} virtual void sayName() = 0;};

2015-12-11 19:23:40 1220

原创 23种设计模式C++实例之概述和设计原则

一 分类1 创建型工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型模式(Prototype)单例模式(Singleton)2 结构型外观模式(Facade)适配器模式(Adapter)代理模式(Proxy)装饰模式(Decorator)桥接模式(Bridge)组合模式

2015-12-11 19:19:05 2394

原创 一步一步学写makefile

在做服务器开发的时候,需要用到gcc编译各种文件,如果文件多了,要做大量的重复工作。这时候你需要make工具,写上一个makefile文件,就能轻松解决问题。一 规则makefile的编写规则如下:target:components    commandtarget目标名components 依赖的文件或者目标command 编译命令,前面必须有1个tab键

2015-12-10 14:28:09 797

原创 VIM多行注释/反注释

注:c/c++注释/反注释为例方法一:v模式多行编辑注释1 Ctrl+v进入v模式2 上下方向键选中要注释的行3 shift+i(即大写的I)行首插入4 输入注释符//5 按esc返回反注释1 Ctrl+v进入v模式2 上下方向键选中要注释的行,左右键选择要删除的字符//3 按d删除方法二:查找替换注释命令格式:起

2015-12-07 07:57:33 14028 1

原创 程序员的VIM配置

后端神器:VIM让手速跟上思维!" $Author: xulidong $" $Mail: xu.lidong@qq.com $" $Date: 2015-12-04 $" $URL: http://blog.csdn.net/xufeng0991/article/details/50178493 $" 特殊键" Esc" Ctrl+a" 上方向键"

2015-12-04 18:57:11 734

web开发Demo

CSS+Div JavaScript jQuery jQuery UI jqGrid

2013-08-28

C++类的基本知识实例

C++类的创建和使用的基本知识,各种类型的数据成员

2013-05-25

含类对象子类的构造函数

含有类对象的派生类的构造函数的书写,输出运算符的重载

2013-06-02

动态多态性和静态多态性

C++中的多态性实例,包括静态多态性和动态多态性(运算符的重载和虚函数)

2013-06-02

C++友元成员函数使用实例

C++友元函数的使用,这个友元函数是另一个类的成员函数

2013-05-25

socket发送http请求

在linux环境下,使用socket发送和接收http请求的例子

2013-05-25

Lua for Windows 5.1.4-45

Lua在Windows下面的继承开发环境

2014-07-03

三种工厂模式

包含三个完整的工厂模式类:简单工厂模式,工厂方法模式,抽象工厂模式

2013-05-25

设计模式之禅

设计模式

2012-05-14

java猜拳游戏

这是一个用Java语言写的猜拳游戏,是一个java的入门程序,适合初学者参考

2013-06-04

数组的基本操作

java数组的基本操作 查找最大元素 选择排序 优化选择排序 冒泡排序 交换数组元素

2013-06-06

java单例模式

java实现的单例模式,包含懒汉式和饿汉式,适合java入口

2013-06-07

C++单例模式

一个完整的单例的书写例子,用C++编写的,包括单例类及其使用

2013-05-25

观察者模式

用C++写的,完整观察者模式实例,包换类和其使用

2013-05-25

C++ 操作符重载

C++操作符的重载 包含了双目运算符 单目运输符 以及前自增 后自增

2013-05-30

手游服务器的负载上限

发表于 2014-10-22 最后回复 2014-10-23

如何提取图片中的文本信息

发表于 2013-09-22 最后回复 2013-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除