以下来自对 cocos2d-x-3.5 的源码分析,今天重点研究它的动态开辟的对象释放问题.
涉及以下3个基本的class
和一个模板类
手动引用计数类
class Ref
Ref
对象池AutoreleasePool
对象池管理员
PoolManager
模板类
RefPtr
模拟shared_ptr
另外还有一个相关的class : class Clonable
. @H_502_23@ * 支持接口 Clonable* clone()
,会复制Ref
,重新开始计数.
@H_301_172@可以看到 cocos2d-x 提供了基本的管理机制,但是需要依赖程序员的自觉性!!!
基于Ref的继承体系速查
Ref
Director
@H_502_23@DisplayLinkDirector
EventListener
EventListenerAcceleration
EventListenerController
EventListenerCustom
EventListenerFocus
EventListenerKeyboard
EventListenerMouse
EventListenerTouchOneByOne
Event
@H_502_23@EventDispatcher
EventController
EventFocus
EventCustom
EventKeyboard
EventMouse
EventTouch
Scheduler
ScriptHandlerEntry
Touch
ActionManager
Action
:Cloneable
@H_502_23@FiniteTimeAction
@H_502_23@ActionInstant
@H_502_23@StopGrid
ActionInterval
@H_502_23@GridAction
@H_502_23@Grid3DAction
TiledGrid3DAction
AccelDeccelAmplitude
AccelAmplitude
DeccelAmplitude
ActionEase
@H_502_23@EaseBackIn
EaseBackInOut
EaseBackOut
EaseBezierAction
EaseBounce
@H_502_23@EaseBounceIn
EaseBounceInOut
EaseCircleActionIn
EaseCircleActionInOut
EaseCircleActionOut
EaseCubicActionIn
EaseCubicActionInOut
Animate
BezierBy
BezierTo
Blink
FadeTo
@H_502_23@FadeIn
FadeOut
JumpBy
@H_502_23@JumpTo
MoveBy
@H_502_23@MoveTo
Repeat
RepeatForever
ReverseTime
RotateBy
RotateTo
ScaleTo
@H_502_23@ScaleBy
TintBy
TintTo
TargetedAction
ProgressFromTo
ProgressTo
ActionTween
Sequence
SkewTo
@H_502_23@SkewBy
Spawn
Follow
Speed
ActionCamera
@H_502_23@OrbitCamera
PointArray
AnimationFrame : Cloneable
Animation : Cloneable
AnimationCache
Node
@H_502_23@Camera
BaseLight
@H_502_23@AmbientLight
DirectionLight
PointLight
SpotLight
AtlasNode
@H_502_23@LabelAtlas
:LabelProtocol
TileMapAtlas
ClippingNode
ClippingRectangleNode
DrawNode
TMXLayer
TMXTiledMap
LabelTTF
:LabelProtocol
,BlendProtocol
LabelBMFont
:LabelProtocol
,BlendProtocol
Layer
@H_502_23@MotionStreak
:TextureProtocol
NodeGrid
RenderTexture
ParallaxNode
ProtectedNode
@H_502_23@ParticleBatchNode
:TextureProtocol
ParticleSystem
:TextureProtocol
@H_502_23@ParticleSystemQuad
@H_502_23@ParticleExplosion
ParticleMeteor
ParticleFire
ParticleFireworks
ParticleFlower
ParticleGalaxy
ParticleRain
ParticleSmoke
ParticleSnow
ParticleSpiral
ParticleSun
Scene
@H_502_23@TransitionScene
@H_502_23@TransitionCrossFade
TransitionFade
TransitionJumpZoom
TransitionShrinkGrow
:TransitionEaseScene
TransitionMoveInL
:TransitionEaseScene
@H_502_23@TransitionMoveInB
TransitionMoveInR
TransitionMoveInT
TransitionSceneOriented
@H_502_23@TransitionFlipAngular
TransitionFlipX
TransitionFlipY
TransitionZoomFlipX
TransitionZoomFlipY
TransitionFadeTR
:TransitionEaseScene
@H_502_23@TransitionFadeDown
TransitionFadeUp
TransitionSlideInL
:TransitionEaseScene
@H_502_23@TransitionSlideInR
TransitionSlideInT
TransitionSplitCols
:TransitionEaseScene
@H_502_23@TransitionSplitRows
TransitionTurnOffTiles
TransitionPageTurn
TransitionProgress
Sprite
:TextureProtocol
SpriteBatchNode
:TextureProtocol
@H_502_23@TMXLayer
TMXTiledMap
Component
@H_502_23@FontCharMap
FontFNT
FontFreeType
LayoutComponent
FontAtlas
Grabber
GridBase
@H_502_23@Grid3D
TiledGrid3D
SpriteFrame
:Clonable
SpriteFrameCache
TMXObjectGroup
TMXLayerInfo
LayoutManager
RichElement
GLView