首页 > 其他 > 详细

cocos2d-x-3.x 场景(2)简单切换场景

时间:2015-12-05 22:20:14      阅读:367      评论:0      收藏:0      [点我收藏+]

首先建立一个新的类,把它称作ImageScene,放在Classes之中

然后这里贴一下代码:

头文件:

ImageScene.h

#include <iostream>
#include <cocos2d.h>
USING_NS_CC;

class ImageScene :public Layer{
public:
virtual bool init();
static Scene* createScene();
CREATE_FUNC(ImageScene);
};

CPP:

#include "ImageScene.h"


Scene* ImageScene::createScene(){

Scene* scene = Scene::create();

ImageScene * layer = ImageScene::create();
scene -> addChild(layer);
return scene;
}

bool ImageScene::init(){
Size size = Director::getInstance()->getVisibleSize();
Sprite * s = Sprite::create("0840.png");    //此处()里的为切换后的图片场景文件
s->setPosition(size.width / 2, size.height / 2);    //此处设置位置
addChild(s);
return true;
}

然后呢,在HelloWorldScene.cpp中,老样子找到位置,详见第四节,该删除的删除掉。

然后添加代码段,这里展示添加完全的。

先介绍如何切换图片~轻轻点击就可以切换

bool HelloWorld::init()
{

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

Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

Sprite * label = Sprite::create("0842.png");    //设置前一个场景的图片,()里为图片文件名
label->setPosition(visibleSize.width/2,visibleSize.height/2);    //设置位置
addChild(label);    //加入图层
label->setPosition(visibleSize.width / 2, visibleSize.height / 2);
EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [label](Touch *t, Event *e){
if (label->getBoundingBox().containsPoint(t->getLocation())){
Director::getInstance()->replaceScene(ImageScene::createScene());
}
return false;
};
Director::getInstance()->getEventDispatcher()->
addEventListenerWithSceneGraphPriority(listener, label);

return true;
}

这里介绍如何由文字到图片切换

bool HelloWorld::init()
{

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

Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

LabelTTF *label = LabelTTF::create("show the next scene", "Andalus", 20);    //设置显示文字,第二个为字体,随意选,第三个为字号。
addChild(label);    //把这个加入图层
label->setPosition(visibleSize.width / 2, visibleSize.height / 2);
EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [label](Touch *t, Event *e){
if (label->getBoundingBox().containsPoint(t->getLocation())){
Director::getInstance()->replaceScene(ImageScene::createScene());
}
return false;
};
Director::getInstance()->getEventDispatcher()->
addEventListenerWithSceneGraphPriority(listener, label);

return true;
}

然后,至于其他的,比如文字转文字,图片转文字,稍微修改一下就可以了~

cocos2d-x-3.x 场景(2)简单切换场景

原文:http://www.cnblogs.com/aprillie/p/5022270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!