码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-08 23:24:19      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

学习重点: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 ):布置背景。CCScene is a subclass of CCNode that is used only as an abstract concept. 场景是CCNode的子类,是一种抽象化的思想。CCScene也是所有nodes的父类。
	图层(CCLayer):多个图层构成场景,可嵌套。CCLayer is a subclass of CCNode that implements the TouchEventsDelegate protocol.图层是CCNode的子类且实现了TouchEventsDelegate协议。
	精灵(CCSprite):放置在图层上,显示在场景中,具体的物体由精灵抽象化。CCSprite can be created with an image, or with a sub-rectangle of an image.精灵可以用一个图片来创建,或也可以用一个子矩阵来创建。
       动作(CCAction) :行为。 Base class for CCAction objects. CCAction对象的基础类。
	节点(CCNode):最主要的元素,所有元素的基础。Anything that gets drawn or contains things that get drawn is a CCNode. The most popular CCNodes are: CCScene, CCLayer, CCSprite,CCMenu.任何包含的东西都是在CCNode的基础之上,用的最普遍的是场景,图层,精灵,菜单。
    	eg:“开心消消乐”的开始画面,通过层次的方式把UI和按钮分开来
   
    2)构架方案:
	节点树,CCNode技术分享
	摄像机,A CCCamera is used in every CCNode技术分享
		可以用于任何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()。更详细的 请点击

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

标签:

原文地址:http://blog.csdn.net/xiaoyou59/article/details/44926291

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!