展会信息港展会大全

Cocos2dx 3.x创建Layer的步骤
来源:互联网   发布日期:2015-09-27 15:28:37   浏览:1504次  

导读: 创建 1、新建类文件。注意目录为Classes下,否则文件不能正常找到。 2、修改预编译头。如用VS,默认为#pragma once,为了兼容,改为#ifndef | #define | #e...

创建

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的入口,通过该函数进入Layer

Scene* 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.h

private:

// 声明

void gameStep(float dt);

// GamaLayer.cpp

// 实现

void GameLayer::gameStep(float dt)

{

//bg->move();

}

void GameLayer::startGame()

{

// 调用

this->schedule(SEL_SCHEDULE(&GameLayer::gameStep), 0.02f);

}

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港