标签:
主要内容:
一、C++语法特点简介
二、第一个HelloWorld场景
三、新建一个场景
一、C++语法特点简介
1. 函数的声明和定义分开
例如AppDelegate.h中声明的函数都在AppDelegate.cpp中定义
TIPS:按F12直接跳到Definition
2. #include预编译
在需要调用其他类中的一些方法时,必须#include其头文件
比如这里如果不#include “HelloWorld.h”就无法调用HelloWorld::scene()这个方法。
3. using namespace 命名空间
在不同的命名空间里,有不同的方法,不同的类
4. ::双冒号用法
作用域的操作符
5. 析构函数
析构函数的作用和构造函数相反,在构造函数中,常做一些成员变量的初始化等。析构函数中对一些不需要的函数进行处理。
6. 指针
一种类型:指针类型,直接操作内存地址。
例如定义的导演是一个指针
7. :单冒号
在C++中特别的表示继承,共有或私有方法
二、第一个HelloWorld场景
1 #ifndef __HELLOWORLD_SCENE_H__ 2 #define __HELLOWORLD_SCENE_H__ 3 4 #include "cocos2d.h" 5 6 class HelloWorld : public cocos2d::CCLayer 7 { 8 public: 9 // Here‘s a difference. Method ‘init‘ in cocos2d-x returns bool, instead of returning ‘id‘ in cocos2d-iphone 10 virtual bool init(); 11 12 // there‘s no ‘id‘ in cpp, so we recommend returning the class instance pointer 13 static cocos2d::CCScene* scene(); 14 15 // a selector callback 16 void menuCloseCallback(CCObject* pSender); 17 18 // implement the "static node()" method manually 19 CREATE_FUNC(HelloWorld); 20 }; 21 22 #endif // __HELLOWORLD_SCENE_H__
可以看到HelloWorld类继承于CCLayer。
里面的3个方法分别表示初始化、场景、选择器的回调函数。
最后的CREATE_FUN()表示自动回收机制,如这里当HelloWorld不再使用的时候,就被自动回收释放。
在HelloWorldScene.cpp中对以上方法进行了定义。
三、新建一个场景
MyScene.h:
1 #pragma once 2 #include "cocos2d.h" 3 4 using namespace cocos2d; 5 6 class MyScene : public CCLayer 7 { 8 public: 9 MyScene(); 10 ~MyScene(); 11 virtual bool init(); 12 static CCScene* scene(); 13 CREATE_FUNC(MyScene); 14 };
MyScene.cpp:
1 #include "MyScene.h" 2 3 4 MyScene::MyScene() 5 { 6 } 7 8 9 MyScene::~MyScene() 10 { 11 } 12 13 CCScene* MyScene::scene() 14 { 15 // ‘scene‘ is an autorelease object 16 CCScene *scene = CCScene::create(); 17 18 // ‘layer‘ is an autorelease object 19 MyScene *layer = MyScene::create(); 20 21 // add layer as a child to scene 22 scene->addChild(layer); 23 24 // return the scene 25 return scene; 26 } 27 28 bool MyScene::init() 29 { 30 return true; 31 }
由于在AppDelegate.cpp启动程序.
所以,需要在AppDelegate.cpp中#include "MyScene.h".
但由于创建的类在项目一级目录下,而之前的HelloWorld.h和HelloWorld.cpp都在Classes文件夹下,这就需要一些调整。
在TestGame的project菜单下拉的属性里添加一级目录即可。
再对AppDelegate.cpp中的代码稍作修改:
接下里就可以看到一个全新的场景:
标签:
原文地址:http://www.cnblogs.com/berthua/p/4523929.html