加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x基础学习-创建并替换场景Scene

发布时间:2020-12-14 19:48:20 所属栏目:百科 来源:网络整理
导读:每一款游戏都在一幕幕场景中呈现的,今天来记录一下如何创建自己的场景类,并调用切换效果来切换场景。 1 我们自己的类需要继承Layer类(如果需要用颜色作为背景,则继承LayerColor;或渐变色图层LayerGradient) 2 我们来重写virtual bool init() 方法,首

每一款游戏都在一幕幕场景中呈现的,今天来记录一下如何创建自己的场景类,并调用切换效果来切换场景。

1 我们自己的类需要继承Layer类(如果需要用颜色作为背景,则继承LayerColor;或渐变色图层LayerGradient)

2 我们来重写virtual bool init() 方法,首先来调用基类的init方法,接下来为我们自己的场景添加精灵或控件

bool MyLayer::init(){
	if (!Layer::init())
	{
		return false;
	}

	Sprite *a = Sprite::create("image.png");
	Size visibleSize = Director::getInstance()->getVisibleSize();
	a->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));
	this->addChild(a);
	return true;
}
3 在头文件类的声明中调用CREATE_FUNC宏,为我们添加静态的create方法;或者我们可以自己添加静态的create方法
#ifndef _MY_LAYER_
#define _MY_LAYER_

#include "cocos2d.h"

class MyLayer : public cocos2d::Layer
{
public:
	virtual bool init();
	static cocos2d::Scene * createScene();

	CREATE_FUNC(MyLayer);
};


#endif // !_MY_LAYER_
4 创建一个静态的createScene方法,返回值为Scene指针类,并在该方法中将我们自己的Layer类添加到scene中
Scene * MyLayer::createScene(){
	auto s = Scene::create();
	auto l = MyLayer::create();
	s->addChild(l);

	return s;
}
5 到此我们已经完成了我们自己的场景创建类,接下来替换场景,同时我们可以为场景切换添加一些效果
	auto s = MyLayer::createScene();
	Director::getInstance()->replaceScene(TransitionCrossFade::create(1.0f,s));//添加渐变效果替换场景
注:当我们第一次进入场景时需要调用runWithScene方法,而不是replaceScene方法

所有以Transition开头的类均为场景切换的效果类,调用create方法并将,Scene指针传入即可使用,大家可以自己尝试一下。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读