学习2--了解Cocos2d-x整个引擎框架

前端之家收集整理的这篇文章主要介绍了学习2--了解Cocos2d-x整个引擎框架前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

学习重点:HelloWorld工程,Cocos2D-X引擎框架

在vs2010中打开 学习1中建立好的HelloWorld工程,了解cocos2dx的生命周期和引擎框架。
1,生命周期
学习引擎已经写好了的生命周期,在AppDelegate.h中声明了三个虚函数
applicationDidFinishLaunching : 实现导演(CCDirector)与场景(scene)初始化,applicationDidFinishLaunching -> 导演 -> 场景 -> 图层(layer)->……
applicationDidEnterBackground :当工程进入后台的时候调用函数
applicationWillEnterForeground :当工程进入前端的时候调用函数

2,引擎框架
1)设计思想:
	导演(Director) -> 场景(Scene)-> 层(Layer)-> 精灵(Sprite)
	导演(CCDirector):Class that creates and handle the main Window and manages how and when to execute the Scenes.切换场景,控制场景。导演是单例模式。
	场景(CCScene):布置背景。CCSceneis a subclass ofCCNodethat is used only as an abstract concept. 场景是CCNode的子类,是一种抽象化的思想。CCScene也是所有nodes的父类
	图层(CCLayer):多个图层构成场景,可嵌套。CCLayeris a subclass ofCCNodethat implements the TouchEventsDelegate protocol.图层是CCNode的子类且实现了TouchEventsDelegate协议。
	精灵(CCSprite):放置在图层上,显示在场景中,具体的物体由精灵抽象化。CCSpritecan be created with an image,or with a sub-rectangle of an image.精灵可以用一个图片来创建,或也可以用一个子矩阵来创建。
       动作(CCAction) :行为。 Base class forCCActionobjects. CCAction对象的基础类。
	节点(CCNode):最主要的元素,所有元素的基础。Anything that gets drawn or contains things that get drawn is aCCNode. The most popular CCNodes are:CCScene,CCLayer,CCSprite,CCMenu.任何包含的东西都是在CCNode的基础之上,用的最普遍的是场景,图层,精灵,菜单
    	eg:“开心消消乐”的开始画面,通过层次的方式把UI和按钮分开来
   
    2)构架方案:
	节点树,CCNode
	摄像机,ACCCamerais used in everyCCNode.
		可以用于任何CCNode 

Useful to look at the object from different views. The OpenGL gluLookAt() function is used to locate the camera.用来从不同的视角来看这个对象。OpenGL 公路LookAt函数可以用来摆放摄像机。

If the object is transformed by any of the scale,rotation or position attributes,then they will override the camera.如果这个对象被放大/缩小,旋转,或者设置位置属性,那么他们会覆盖摄像机。

小结:HelloWorld工程。

main函数作为程序入口,run函数中会调用AppDelegate::applicationDidFinishLaunching函数创建导演CCDirector::sharedDirector(),导演再运行场景pDirector->runWithScene(pScene)。

HelloWorld::scene();导演运行的场景是在HelloWorldScene.cpp中实现的。场景创建是空的,所以要在场景中add图层。

图层中add精灵(CCSprite),精灵有(CCAction)等。

ps:c基础

文件(.h):

写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。

:冒号在c++中的意思:

(1)表示“域操作符”

例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,

就要写成void A::f(),表示这个f()函数是类A的成员函数

(2)直接用在全局函数前,表示是全局函数

例:在VC里,你可以在调用API 函数里,在API函数名前加::

(3)表示引用成员函数及变量,作用域成员运算符

例:System::Math::Sqrt() 相当于System.Math.Sqrt()。更详细的 请点击

原文链接:/cocos2dx/343538.html

猜你在找的Cocos2d-x相关文章