自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 cocos2d-x 触屏事件详解

游戏跟视频最大的区别就是互动,玩家可以操控游戏中的角色,现在的移动设备几乎人手一台,基本上全部都是基于触屏操作的,今天就来学习一下cocos2d-x是怎么实现对触屏操作的处理的。1.首先来了解一下相关的几个类、处理触屏事件时操作和执行的流程CCTouch:它封装了触摸点,可以通过locationInView函数返回一个CCPoint。CCTouchDelegate:它是触摸事件委托,就

2013-01-17 19:44:07 505

原创 七.cocos2d-x内存管理二

在前面的介绍之中提及过工厂方法,可以看一下下面这个例子:     CCObject *Func()    {CCObject *ret = new CCObject();return ret;    }当调用语句过后,对ret对象的引用在函数返回的时候已经结束,不过却是没有释放对ret的引用,会造成内存泄漏。但是如果在函数返回之前就released就会触发对象的

2013-01-15 20:48:36 414

原创 六.cocos2d-x内存管理一

移动设备上的硬件资源十分有限,内存尤为宝贵,开发者必须十分慎重利用内存,避免不必要的消耗,更加不能发生内存泄漏!C++作为一种比较底层的语言,设计不办函任何只能管理内存机,因此出现两个问题:    1.  一个对象在使用完毕之后必须被回收,但由于对象所有权在不同程序片段间传递或共享,使得确定回首的实际十分困难。    2. 郭雨林散的对象分配回首可能导致堆中的内存碎片化,降低内

2013-01-15 17:10:35 742

原创 五.Cocos2d-x代码特点

一.命名空间与类名称     Cocos2d-x拥有一个包含了其他头文件“cocos2d.h”,只要包含这个头文件,就可以使用引擎的全部功能。      在游戏中,可以使用引擎提供的另一个宏USING_NS_CC来引用cocos2d命名空间,例如:          #define USING_NS_CC using namespace cocos2d二.构造函数

2013-01-15 13:37:10 792

原创 四.cocos2d-x中的动画与动作

1.动作(Action)作用于游戏元素,可以使游戏元素运动起来,例如:移动、旋转、闪烁、消失等。通过CCAction类实现。    其中,动作又分为持续动作(延时动作)和瞬时动作,分别通过CCActionInterval类以及CCActionInstant类实现。    在这里主要介绍一下,持续动作。ocos2d-x提供的基本延时类动作都提供了ActionTo和ActionBy

2013-01-15 12:41:51 673

原创 三.cocos2d-x的基本概念

对于一般游戏而言,大多数都会遵循这如下图所示这个流程:下面主要根据上图,介绍一下基本概念:1.场景(scene):游戏元素的集合(上图中的节点),也可以将场景视为层的组合。通过CCScene类实现2.流程控制(flow control):游戏场景之间的切换3.层(layer):是场景之下的游戏元素,层与层之间按照顺序叠放。层通过CCLayer实现4.精灵(sprite)

2013-01-15 12:41:11 454

原创 二.Cocos2d-x创建HelloWorld工程

配置好Cocos2d-x之后,接下来就可以创建工程。这里主要创建一个简单的HelloWorld工程。1.打开VS2010,输入名称,并选择目录。2.点击“Next”,并消去“Box2D”的勾勾,点击“Finish”。3.编译运行,发现出错——找不到头文件。可将引擎下的coco2dx以及CocosDenshion拷贝到HelloWorld文件夹下面

2013-01-15 12:40:24 379

原创 一.Cocos2d-x环境配置

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发。这里主要介绍一下,Cocos2d-x的配置。详情请访问其官方网站:http://www.cocos2d-x.org/    1.下载和安装      我选择的是cocos2d-2.0-x-2.0.4版本。下载地址:http://www.cocos2d-x.org/projects/cocos2d-x/wik

2013-01-15 12:39:21 310

原创 sizeof VS strlen

一、sizeof      sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。         它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。         由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配

2013-01-15 12:36:07 295

原创 const 作用

使用const的好处在于它允许指定一种语意上的约束------某种对象不能被修改--------编译器具体来实施这种约束。一、const用于定义常量。    例如:const int N = 100;const int M = 200;       这样程序中只要用到 N、M就分别代表为整型100、200,N、M为一常量,在程序中不可改变。      用const定义常量不仅能方便

2013-01-15 12:35:04 397

原创 拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如:           int a=88;           int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include using namespace std;class CExample {   private:

2013-01-15 12:33:34 268

原创 析构函数剖析三——虚析构函数

析构函数的作用是在对象撤销之前做必要的“清理现场”的工作。当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。    但是,如果用new运算符建立了临时对象,若基类中有析构函数,并且定义了一个指向该基类的指针变量(即基类指针指向子类对象)。在程序用带指针参数的delete运算符撤销对象时,会发生一个情况: 系统会只执行基类的析构函数,而不执行派生类的析构函数。

2013-01-15 12:31:40 388

原创 析构函数剖析二

建议:      A. 不要对局部对象显式地调用析构函数,在创建该局部对象的代码块的 } 处,析构函数会自动被调用。这是语言所保证的;自动发生。没有办法阻止它。而两次调用同一个对象的析构函数,调用两次意味着第二次会试图清理已经被清理过了的,根本不再存在的数据!这是件会导致运行时错误的问题,并且在编译的时候不会告诉你!      但是也会有一些时候,我们想要将一个局部对象在被创建的代码块 }

2013-01-15 12:30:49 339

原创 析构函数剖析一

析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。      显式的调用析构函数是一件非常危险的事情,我们自己所谓的显式调用析构函数,实际上只是调用了一个成员函数,并没有真正意

2013-01-15 12:30:04 348

原创 显式类型转换

将一种类型转换为另一种类型,转换后的变量,它的内部数据存储方式也随之发生改变,有四个显示的类型转换函数,reinterpret_cast,const_cast,static_cast,dynamic_cast.前面三个是在编译期间实现转换的,最后一个是在运行时实现转换,还可返回转换成功与否标志。    double d=3.2;    int i=d;//隐式转换,i=3    dou

2013-01-15 12:29:19 419

原创 虚函数VS纯虚函数

1.作用      定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。      定义一个函数为纯虚函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。2.关于实例化一个类:有纯虚函数的类是不可能生成类对象的,如果没有纯虚函数则可以。比如:      c

2013-01-15 12:28:11 393

原创 ifstream&ofstream

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;    在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(  向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)

2013-01-15 12:27:09 302

原创 友元函数

友元函数(friend function)1. 什么是友元函数?    一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员2. 友元函数的用处体现在哪里?    a.使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类   b.用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑关系3

2013-01-15 12:25:53 486

原创 指针数组&数组指针

(1)int *ptr;//指针所指向的类型是int    (2)char *ptr;//指针所指向的的类型是char    (3)int **ptr;//指针所指向的的类型是int*(也就是一个int * 型指针)    (4)int(*ptr)[3];//指针所指向的的类型是int()[3] //二维指针的声明1. 指针数组:一个数组里存放的都是同一个类型的指针——一个数组

2013-01-15 12:24:20 266

原创 指针和堆的内存分配

先来介绍一下指针: 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,都是说明了本指针所指向的地址空间是什么类型而已,了解了这个基本上所有的问题

2013-01-15 12:23:15 727 2

空空如也

空空如也

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

TA关注的人

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