Cocos2dx 3.x创建Layer的步骤

创建

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);
}
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值