自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 TControl与Windows消息

TControl将系统消息转换成VCL事件,以将系统消息融入VCL中。鼠标的事件就是一个很好的例子,当我们单击鼠标时会产生鼠标的单击消息,而这个单击消息是怎么被处理并执行的呢?在Control单元中有这样的一段代码: 1 TControl = class(TComponent) 2 private 3 ... 4 FControlState: ...

2016-07-29 20:38:00 120

转载 TObject与消息分发

在TObject类中,有一个Dispatch()方法和一个DefaultHandler()方法,它们都是消息分发机制相关的。Dispatch()负责将特定的消息分发给适应的消息处理函数,DefaultHandler()方法是默认的消息处理方法。首先Dispatch()会在对象本身类型的类中寻找消息处理函数,如果找到则调用它,如果没有找到则调用默认的处理方法。如果两者都...

2016-07-29 11:08:00 93

转载 长串

String类型其实是一个指向特定格式的内存块的指针,在Delphi1中,定义一个String类型的变量的方式为:var nStr : PString;在Delphi后来的版本后,直接使用String关键字,但其本身仍然是一个指向串的指针:var nStr : String; Len : Integer;begin...

2016-07-21 16:18:00 148

转载 使用TSplitter控件调整其他控件大小简便方法

首先,以两个Panel控件大小变换为例。第一步:首先先放入两个panel控件,一个Align属性设置为alLeft,另一个Align属性设置为alClient。这样这两个控件就可以充满这个Form。第二步:然后加入一个TSplitter控件。设置Align属性,并将其拖放到需要调整大小的两个控件中间。当Align属性设置为alLeft或者alRight时候,可以调整左右两边控件大...

2016-03-24 16:45:00 240

转载 Cocos2d-x缓存机制(一)

Cocos2d-x引擎提供3个缓存类,都是全局单例模式。CCTextureCache首先是最底层也是最有效的纹理缓存CCTextureCache,这里缓存的是加载到内存中的纹理资源,也就是图片资源。其原理是对加入缓存的纹理资源进行一次引用,使其引用计数加1,保持不被清除,而Cocos2d-x的渲染机制是可以重复使用同一份纹理在不同场合中进行渲染,从而达到重复使用,降低内存和...

2016-03-07 16:58:00 158

转载 自定义绘图

引擎在CCNode中预留了自定义绘图接口,如:1 void CCNode::draw()2 {3 //CCAssert(0);4 //可以重载此方法5 //最好仅在这个方法中绘制自定义的内容6 }draw函数是一个每帧都会调用的函数,注释中明确指出,通常情况下只应该在这个函数内编写自定义绘制效果,不要再这个函数以外...

2016-03-07 14:19:00 83

转载 粒子系统

cocos2d-x提供的粒子系统有CCParticleSystem类实现,实现了对粒子的控制与调度,对粒子的操作包括以下:产生粒子:也被称作粒子发射器emitter。更新粒子状态:引擎会随着时间更新粒子位置、速度已经其他状态。回收无效粒子:当粒子的生存周期结束后,就会被系统回收。从plist文件中导出粒子效果bool initWithFile(const...

2016-02-27 20:22:00 61

转载 文字输入

文本框控件CCTextFieldTTF:const char* getString(void); 获取当前字符串bool attachWithIME(); 激活输入法bool detachWithIME(); 取消激活输入法例如:1 CCTextFieldTF text = CCTextFieldTTF::text...

2016-02-27 20:21:00 67

转载 触摸输入

使用CCLayer响应触摸事件:开启了层的触摸输入支持后,就可以在层中处理触摸事件了,当引擎接收到触摸事件就会调用下面的方法:1 virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);2 vritual void ccTouchesMoved(CCSet *pTouches, CCEvent *pE...

2016-02-27 20:19:00 118

转载 音效引擎

#include "SimpleAudioEngine.h"音效引擎是一个单例类:SimpleAudioEngine::sharedEngine();进入游戏场景前需要预加载音乐和音效1 void preloadEffect(const char* pszFilePath);2 void preloadBackgroundMu...

2016-02-27 20:18:00 150

转载 场景特效

CCTransitionScene用来实现场景切换特效,派生于CCScene,也就是说场景特效也是一个场景。例如: 1 CCDirector::sharedDirector()->replaceScene(CCTransitionFlipX::transitionWithDuration(2, pScene));场景特效代码包含于CCT...

2016-02-27 20:17:00 134

转载 动作类

基本概念:CCAction是动作类的基类,所有动作都派生自这个类,它创建一个对象代表了一个动作,动作作用于CCNode。值得注意的是:一个CCAction只能使用一次,这是因为动作对象不仅描述了动作,还保存了这个动作持续过程中不断改变的一些中间参数。对于需要反复使用的动作对象,可以通过copy方法复制使用。CCAction作为一个基类,其实质是一个接口,即抽象类,...

2016-02-27 20:15:00 241

转载 Cocos2d-x调度原理

游戏主循环:CCDirector包含一个管理引擎逻辑的方法,它就是CCDirector::mainLoop()方法,这个方法负责调用定时器,绘图,发送全局通知,并处理内存回收池。该方法按帧调用,每帧调用一次。mainLoop() 方法把内存管理以外的操作交给了drawScene()方法。drawScene() 方法主要进行一下操作: 调用了定时调度器的upda...

2016-02-27 20:13:00 57

转载 Cocos2d-x内置的常用层

CCLayerColor : 一个单纯的实心色块CCLayerGradient : 一个色块,但可以设置两种颜色的渐变效果CCMenu : 游戏菜单CCLayerColor: 如果采用指定了宽与高的初始化方法,则创建一个指定大小的色块;如果采用不指定大小的初始化方法,则创建一个屏幕大小的色块。1 static CCLayerColor* create(...

2016-02-27 20:12:00 72

转载 节点和坐标系

CCNode定义了一个可绘制对象的通用特性,包括位置、缩放、是否可见、旋转角度等。节点功能包括:包含其他CCNode对象、接受各种事件与回调函数、运行动作。坐标系:绘图坐标系:与OpenGL采用的坐标系相同。以左下角为原点,向右为x轴正方向,向上为y轴正方向。纹理坐标系:以左上角为原点,向右为x轴正方向,向下为y轴正方向。CCSprite相关的绘图属性:...

2016-02-27 20:10:00 535

转载 精灵类

使用图片文件创建精灵的相关方法:1 static CCSprite* create(const char *pszFileName);2 static CCSprite* create(const char *pszFileName, const CCRect& rect);3 bool initWithFile(const char *pszFi...

2016-02-27 20:09:00 156

转载 导演类

导演类主要负责一下工作:游戏呈现方面的设定,包括设定游戏呈现的窗口、FPS显示、默认帧率上限、纹理颜色位宽等。切换当前的游戏场景,暂停或恢复游戏场景的运行。游戏在CCDirector的管理下完成了呈现设定与流程控制。CCDirector扮演着全局大总管的角色,因而很自然地采用了单例的设计模式。在程序的任何地方,都可以通过下面的...

2016-02-27 20:08:00 82

转载 部分辅助宏

CC_SAFE_DELETE(p) 使用delete操作符删除一个C++对象p,如果p为NULL,则不进行操作。CC_SAFE_DELETE_ARRAY(p) 使用delete[]操作符删除一个C++数组p,如果p为NULL,则不进行操作。CC_SAFE_FREE(p) ...

2016-02-27 20:04:00 155

转载 妥善使用autorelease()方法

autorelease()并不是毫无代价的,其背后的垃圾池机制同样需要占用内存和CPU资源,每次执行autorelease()的过程,实际上对应的是执行成对的retain()和release(),以及一次成对的容器存取,还包括其他的逻辑判断。过多不必要的autorelease()将导致垃圾池臃肿。此外,autorelease()只有在自动释放池被释放时才会进行一次释放操作,...

2016-02-27 20:03:00 162

转载 内存管理笔记

目前实现智能管理内存的技术,一是引用计数,一是垃圾回收。引用计数:是一种很有效的机制,通过给没个对象维护一个引用计数器,记录该对象当前呗引用的次数。当对象增加一次引用时,计数器加1;而对象失去一次引用时,计数器减1;当引用计数为0时,标志着该对象的生命周期结束,自动触发对象的回收释放。引用计数的重要规则是每个程序片段必须负责任地维护引用计数,在需要维持对象生存的程序段的开始和结束分别...

2016-02-27 20:00:00 61

转载 cocos2d-x工厂方法

工厂方法是程序设计中一个经典的设计模式,指的是基类中只定义创建对象的接口,将实际的实现推迟到子类中。如:1 CCObject* factoryMethod() {2 CCObject* ret = new CCObject();3 //在这里对ret对象进行必要的初始化操作4 return ret;5 }这段看起来正常的...

2016-02-27 19:56:00 84

转载 cocos run -p android报错 BUILD FAILED ..\ant\build.xml:892

使用编译指令生成apk文件时,出现这个错误,是因为重复引用了..\YourGame\cocos2d\cocos\platform\android\java\bin\classes.jar文件。为什么会出现这个错误呢?是因为我们在第一次把工程导入eclipse时候需要导入..\cocos2d\cocos\platform\android\libcocos2dx这个工程,并将其设置为...

2016-02-22 18:04:00 137

转载 delphi函数调用约定

指令参数存放位置参数传递顺序参数内存管理使用地方RegisterCPU寄存器从左到右被调用者默认,published属性存取方法必须使用Pascal栈从左到右被调用者向后兼容...

2015-07-30 10:21:00 361

转载 delphi启动 EditLineEnds.ttr 被占用问题

碰到这个问题我也是无语了,每次关掉Delphi后就不能打开了,折腾了半天,网上的方法也没有搞定。最后,找到这个链接(网页如下所示),下载里面的东西就搞定了。打不开的可以向我要。895569369@qq.com。http://sourceforge.net/projects/dzeditorlineendsfix/?source=typ_redirect另外这个链接里面的内容解释了...

2015-07-29 18:06:00 185

转载 判断浮点数是否相等

在delphi中:uses Math;procedure TForm1.FormCreate(Sender : TObject);var  a : Double;  b : Double;begin  //初始化a,b.  ShowMessage(FloatToStr(Max(a,b))); end;在delphi中,函数Max可以重载。所以,Ma...

2015-07-27 15:33:00 356

转载 delphi 类型转化

1.typecasting类型强制转化varB : Boolean;BeginB := Boolean(1);End;对于对象和接口,采用as操作符进行转化,但要先进行兼容性判断。2.Pointer指针Var A : Integer; P : PBoolean; B : Boolean;...

2015-07-27 14:43:00 86

转载 VCL主要框架

TObject->TPersistent Classes,抽象类->TComponent Classes,抽象类->TControl Controls->TGraphicControl /TWinControl ControlsTObject主要定义了四种功能的虚方法1.1. 对象的构造函数和析构函数(...

2015-07-27 14:42:00 226

转载 delphi TFileStream.create

ValueMeaningfmCreate Create a file with the given name. If a file with the given name exists, open the file in write mode. fmOpenRead Open the f...

2015-07-27 14:41:00 444

转载 delphi常用函数过程

数据类型转化1.1. 数值和字符串转化Procedure Str(X [: Width [ : Decimals ]]; var S);将数值X按照一定格式转化成字符串S。Width指定S的总长度,Decimals指定小数点后的位数。EX: Str(12.2 : 6 : 2 , S); //S=’ 12.20’;Procedure Va...

2015-07-27 14:39:00 162

转载 delphi构造&析构调用顺序

_ClassCreate->Create->AfterConstruction(->DoCreate / OnCreate)BeforeDestruction(->DoDestroy / OnDestroy)->Destroy->_ClassDestroy转载于:https://www.cnblogs.com/Blo...

2015-07-27 14:38:00 107

转载 VMT & DMT

虚拟方法表和动态方法表虚拟方法表VMT:一个虚拟方法表从指针所指地址的负偏移.76 处开始,长度动态分配(由虚拟方法的个数确定)。虚拟方法表被分为很多小段,每段占4 个字节,也就是众多指针。每个指针指向一个虚拟方法的入口地址。VMT可分为1) 基础信息区VMT负偏移区(-76-0)即为基础信息区。存储了基础数据(如实例大小)、基础数据的指针(如接口表、运行时类型信息表...

2015-07-27 14:38:00 105

转载 delphi数据类型

1.Simple:1.1.Ordinal: Integer: Integer 4byte Cardinal un_4byte ...

2015-07-27 14:36:00 134

空空如也

空空如也

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

TA关注的人

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