Cocos2dx 3.x创建Layer的步骤

来源:互联网 发布:jquery 3.1.1.min.js 编辑:程序博客网 时间:2024/04/28 19:04

创建

1、新建类文件。注意目录为Classes下,否则文件不能正常找到。

2、修改预编译头。如用VS,默认为#pragma once,为了兼容,改为#ifndef | #define | #endif

3、添加cocos2d.h头文件

4、继承cocos2d::Layer,默认为private继承,通常需要改为public继承。

5、添加init()和CREATE_FUNC()

6、实现init()

7、添加createScene(),可选

最基本的代码:

//GameLayer.h#ifndef _GAMELAYER_H#define _GAMELAYER_H#include "cocos2d.h"class GameLayer : public cocos2d::Layer{public:GameLayer();~GameLayer();public:virtual bool init();CREATE_FUNC(GameLayer);public: static cocos2d::Scene* createScene();};#endif // _GAMELAYER_H
// GameLayer.cpp#include "GameLayer.h"USING_NS_CC;// 构造函数,如有对象成员,需要在此初始化GameLayer::GameLayer(){}// 析构GameLayer::~GameLayer(){}//虚函数,初始化,当执行本类的create()函数时会被自动调用bool GameLayer::init(){bool bl = Layer::init();// 加入内容return bl;}// Scene的入口,通过该函数进入LayerScene* GameLayer::createScene(){auto scene = Scene::create();auto layer = GameLayer::create();scene->addChild(layer);return scene;}
进入
// 直接进入auto layer = GameLayer::createScene();Director::getInstance()->replaceScene(layer);

// 特效进入auto layer = GameLayer::createScene();auto slidein = TransitionSlideInL::create(1.0f, layer);Director::getInstance()->replaceScene(slidein);

// 进入特效完之后才发生//声明虚函数virtual void onEnterTransitionDidFinish();
添加定时器
// GameLayer.hprivate:// 声明void gameStep(float dt);
// GamaLayer.cpp// 实现void GameLayer::gameStep(float dt){//bg->move();}void GameLayer::startGame(){// 调用this->schedule(SEL_SCHEDULE(&GameLayer::gameStep), 0.02f);}

0 0