自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 cocos2d中init中必须调用父类init

bool CCLayer::init(){    bool bRet = false;    do     {        CCDirector * pDirector;        CC_BREAK_IF(!(pDirector = CCDirector::sharedDirector()));        this->setContentSize(pDirec

2013-10-31 18:50:36 714

原创 cocos2d 属性

int tag;  int getTag() { return tag; }  void setTag(int aTag) { tag = aTag; } 利用Cocos2d-x提供的宏,上面的Tag属性定义就可以用下面一条语句代替了:CC_SYNTHESIZE(int, tag, Tag)

2013-10-31 16:18:30 704

原创 宏 CREATE_FUNC

宏的单行定义#define maxi(a,b) (a>;b?a:b)宏的多行定义宏可以替代多行的代码  关键是要在每一个换行的时候加上一个 "\ "宏定义写出swap(x,y)交换函数#define swap(x, y)\x = x + y;\y = x - y;\x = x - y;—————————————————————————————————

2013-10-31 14:54:21 659

原创 函数的重载

C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。在C++中,没有跨域重载——继承类和基类虽然关系很亲密,但也不能坏了这条规矩。#include using namespace std;class B{ public: int f(int i) { cout re

2013-10-30 15:42:04 619

原创 boundingBox getContentSize

boundingBox() ——如果你在一个Sprite(比如A)中加入一个子Sprite(比如B),则B通过boundingBox()获取到的边框,相对于父Layer来说,位置是不准的,这会导致明明按中了B,却得不到该有的响应。(少用boundingbox 可用contentSize代替引擎而已不需要全深入 好用就行)getContentSize返回的是原sprite的大小CCRectM

2013-10-30 11:46:49 921

原创 摄像机实现翻转

2、关于节点的摄像机 cam->setEyeXYZ(0,0,500);//以“Eye”为起点     eye是一个位置点 cam->setCenterXYZ(0,0,-1);//朝“Center”看    center是一个向量cam->setUpXYZ(0,1,0);//沿着“Up”方向         站着看地上一个图片 转动身体后看到的图片会也会转3、关于摄像机旋转动作C

2013-10-30 11:45:38 881

原创 裁剪区域的实现

void visit()//此方法为绘制时调用,系统每帧调用{ glEnable(GL_SCISSOR_TEST); glScissor(0, 0, 1024, 768);//x, y, w, h   左下0 0点 cocos2d::CCLayer::visit();//调用自己的类方法 glDisable(GL_SCISSOR_TEST);} 也可以使用scrol

2013-10-30 11:43:29 1209

原创 长按按钮

#pragma once#include "cocos2d.h"class LongTouch : public cocos2d::CCNode, public cocos2d::CCTouchDelegate{public: LongTouch(void); ~LongTouch(void); virtual bool ccTouchBegan(cocos2d::

2013-10-30 11:40:21 836

原创 1)钟爱组合而不是继承,2)钟爱接口而不是实现

1)钟爱组合而不是继承,2)钟爱接口而不是实现

2013-10-30 11:07:30 867

原创 cocos2d部分函数

CCAction的基类virtual void stop (void)动作完成后自动调用,不能手动的用一个动作调用stop()virtual void step (ccTime dt)每帧都会调用 一般不用重写virtual void update (ccTime time)在动作过程中调用一次,需要的时候重新实现 参数是0到1 0这个方法在动作刚开始的时候调用 0.5方法

2013-10-29 11:38:52 728

原创 cocos2d权威指南部分摘录

cocos2d简介————————————————————————————————————————————首先Cocos2D 降低了技术的复杂性。它虽然基于OpenGL(Open Graphics Library,开放图形库)和OpenGL ES(OpenGL for Embedded Systems,嵌入式系统开放图形库),但是使用Cocos2D 系列的引擎无须掌握OpenGL 的相关知识。

2013-10-29 11:04:52 1172

原创 Decorator

//动态添加需求//Decorator模式,又叫装饰模式,就是给一个对象额外地添加一些职责,以适应更多的变化。//你或许写一个Door //的子类AlarmDoor ,在里面添加一个子类独有的方法alarm() 。而当你的系统仅仅在一两个地方使用了警报门,这明 //显是不合理的——虽然可以使用缺省适配器来弥补一下。 这时候,你可以考虑采用装饰模式来给门动态的添加些额外的功能。/

2013-10-29 11:00:36 554

原创 State

//状态机  详细的在23种设计模式 4.2//1) 使用环境(Context)角色:客户程序是通过它来满足自己的需求。它定义了客户程序需要的接口;并且维护一个具体状态角色的实例,这个实例来决定当前的状态。//2) 状态(State)角色:定义一个接口以封装与使用环境角色的一个特定状态相关的行为。//3) 具体状态(Concrete State)角色:实现状态角色定义的接口。//G

2013-10-29 11:00:12 597

原创 Observer

// 观察者(Observer )模式又名发布-订阅(Publish/Subscribe)模式。GOF  给观察者模 //式如下定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依 //赖于它的对象都得到通知并被自动更新。 //观察者模式的起源我觉得 应该是在 GUI 和业务数据的处理上//观察者模式的组成部分。 //1)  抽象目标角色(Subject

2013-10-29 11:00:06 672

原创 Visitor

//详细的在23种设计模式 4.3//1) 访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作//接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可//以通过该元素角色的特定接口直接访问它。//2) 具体访问者角色(Concrete Visitor):实现每个由访问者角色(Visitor)声明的操作。//3) 元素角色

2013-10-29 11:00:04 563

原创 Factory

//工厂模式//工厂模式主要为创建对象提供过渡接口 以便将创建对象的过程屏蔽起来//何时使用//1、当客户程序不需要知道要使用对象的创建过程//2、客户程序使用的对象存在变动的可能,或者根本不知道使用哪一个具体的对象//工厂负责创造对象(new对象)#include #include     class Car{public: //默认私有 结构体默认公

2013-10-29 10:59:38 543

原创 Mediator

//Mediator  模式提供将对象间 的交互和通讯封装在一个类中,各个对象间的通信不必显势去声明和引用,大大降低了系统 的复杂性能 ////例如 图中 ConcreteColleagueA 和 ConcreteColleagueB 之间的交互就可以通过 ConcreteMediator 提供的 //DoActionFromAtoB 来处理,ConcreteColleagueA 和

2013-10-28 17:30:58 625

原创 行为模式-Iterator

//迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的//内部细节。//在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的://一是集合内部的数据存储结构,二是遍历集合内部的数据。面

2013-10-28 17:30:31 574

原创 Adapter

//Adapter模式又叫适配器模式,顾名思义,这个模式就是把一个不能用的东西“适配”成可以用的东西。//那么是如何“适配”的呢?比如,东西A想使用东西B,但是A没有能力(没法)使用B,怎么办?A就让东西C帮忙,A通过C就可以用B了。C如何帮忙呢?//C一边可以通过一个“手柄”让A握住,A一用力,C就在另一边握住B的“手柄”,使用B。这样A就可以间接的使用到B了。//A通过C使用B

2013-10-28 17:29:45 787

原创 Bridge

//动态添加需求//Decorator模式,又叫装饰模式,就是给一个对象额外地添加一些职责,以适应更多的变化。//你或许写一个Door //的子类AlarmDoor ,在里面添加一个子类独有的方法alarm() 。而当你的系统仅仅在一两个地方使用了警报门,这明 //显是不合理的——虽然可以使用缺省适配器来弥补一下。 这时候,你可以考虑采用装饰模式来给门动态的添加些额外的功能。/

2013-10-28 17:28:49 607

原创 Decorator

//动态添加需求//Decorator模式,又叫装饰模式,就是给一个对象额外地添加一些职责,以适应更多的变化。//你或许写一个Door //的子类AlarmDoor ,在里面添加一个子类独有的方法alarm() 。而当你的系统仅仅在一两个地方使用了警报门,这明 //显是不合理的——虽然可以使用缺省适配器来弥补一下。 这时候,你可以考虑采用装饰模式来给门动态的添加些额外的功能。/

2013-10-28 17:28:10 522

原创 结构型模式-Façade

//子系统发生的变化,很可 能要影响到客户类的调用。而且子系统在不断优化、可重用化的重构路上,会产生更多更小 //的类。这对使用子系统的客户类来说要完成一个工作流程,似乎要记住的接口太多了。 //    门面模式就是为了解决这种问题而产生的//使用环境和优点 //     《设计模式》给出了门面模式的使用环境: //1)  当你要为一个复杂子系统提供一个简单接口时。在上面已经描

2013-10-28 17:26:21 658

原创 Builder

//建造者模式//定义//将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。//实用范围//1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。//2 当构造过程必须允许被构造的对象有不同表示时。//角色//在这样的设计模式中,有以下几个角色://1 builder:为创建一个产品对象的各个部

2013-10-28 17:24:15 764

原创 创建型模式-Singleton

//单例(件)模式//定义:保证一个类仅有一个实例,并提供一个访问他的全局访问点//1、一个类的产生是由类构造函数完成的 使其私有化 外部就不能直接实例类对象//2、提供一个访问单例的静态方法//常用:工厂(因为系统我们就只有一个工厂来创建对象就可以了)..打印机的实例..//系统方法库..//不变单例对象(构造私有化不可被继承 保护可被继承产生多态)#includ

2013-10-28 17:22:18 611

原创

定义为某个值 以便后面修改这个值时不用修改其它地方代码 只要修改这个宏的定义就可以了 如一个软件的多语言版本等 #define 标识符 字符串其中的标识符就是所谓的符号常量,也称为“宏名”掌握"宏"概念的关键是“换”无参数宏定义————其中# define之后的标识符称为宏定义名(简称宏名)# define TRUE 1凡定义之后出现的单词TRUE将用1替代之

2013-10-28 17:18:43 613

原创 虚函数

简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virtual 函数名=0 我们把这样的函数(方法)称为

2013-10-28 17:17:29 712

原创 gets getche getch

函数:gets(字符指针) 功能:从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer 指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。 注意:本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。 如果溢出,多出来的字符将被写入到堆栈

2013-10-28 17:16:18 874

原创 文件读写

文本文件——FILE* file = fopen("xx.txt","xx")//fopen返回值是一个FILE指针  为0则打开失败fputc('w',file);//把字符w写入file 写入成功返回一个int型值 写入字符包含在低字节 高字节为0fgetc(file);//成功返回一个int型值 写入字符包含在低字节 高字节为0//从文件读取一个字符 若无变量保存

2013-10-28 17:14:30 587

原创 .h和.cpp

在ANSI C 的标准文献中,将你所指的“CPP 中的类代码”称为statement(声明 声明的意思是说明,解释);将你所指的“H 中的类代码”称为definition(定义),两者的定义是完全不同的主要指:statement将被C 编译器直接转换为二进制代码,而definition 只被C 编译器用于一些文本处理工作中(类似于宏)  把声明实现都写在头文件,如果不是写成内联函数

2013-10-28 17:13:23 603

原创 模板

当模板类型是数组时,,,,,,,,,,,,,,,,,,,

2013-10-28 16:47:49 590

原创 零碎

[30、41、61]——   0 A a数据在内存中是一个字节一个字节存储的。 整型数据: 0x154a2541()           小端存储顺序  低位存在低地址  41254a15                      大端反的0x25 0010 0101+ - * /重载后优先级不变化内聚:一个模块内各个元素彼此结合的紧密程度耦合:一个软件

2013-10-28 16:47:05 537

空空如也

空空如也

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

TA关注的人

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