设为首页 加入收藏

TOP

零基础学cocos2dx 3.0(顺带学C++)第一篇 切换场景(二)
2015-07-24 05:43:58 来源: 作者: 【 】 浏览:14
Tags:基础 cocos2dx 3.0 顺带 第一篇 切换 场景
ctor::getInstance()->getVisibleSize(); //原点位置 Point origin = Director::getInstance()->getVisibleOrigin(); //创建一个关闭按钮,参数分别为,正常状态显示的图片,选中状态的图片,操作调用的方法即调用MainScene的menuCloseCallback方法 auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(MainScene::menuCloseCallback, this)); //设置关闭按钮的位置为视图的右下方 closeItem->setPosition(Point(origin.x + visibleSize.width - closeItem->getContentSize().width / 2, origin.y + closeItem->getContentSize().height / 2)); //创建菜单,请注意,最后一个参数一定是NULL auto menu = Menu::create(closeItem, NULL); //初始化菜单的位置为原点位置,这个我也需要找个时间理解下 menu->setPosition(Point::ZERO); //把菜单添加到层中 this->addChild(menu, 1); //在视图的正中间竖向位置添加2个图片按钮 auto item1 = MenuItemImage::create("btn-play-normal.png", "btn-play-selected.png", CC_CALLBACK_1(MainScene::onPushSceneOne, this)); auto item2 = MenuItemImage::create("btn-about-normal.png", "btn-about-selected.png", CC_CALLBACK_1(MainScene::onPushSceneTwo, this)); auto menu_oper = Menu::create(item1, item2, NULL); menu_oper->alignItemsVerticallyWithPadding(50); this->addChild(menu_oper, 1); return true; } /** * 进入NewScene的方法 */ void MainScene::onPushSceneOne(Ref* pSender){ auto scene = Scene::create(); scene->addChild(SceneTestLayer::create()); Director::getInstance()->replaceScene(TransitionFlipX::create(.5, scene)); } /** *进入GameScene的方法 */ void MainScene::onPushSceneTwo(Ref* pSender){ auto scene = Scene::create(); scene->addChild(GameSceneLayer::create()); Director::getInstance()->replaceScene(TransitionFlipX::create(.5, scene)); } /** * 关闭视窗的方法 * 下面是官方定义好的一个宏,意思就是,当平台为wp8或者winRT会弹出框 */ void MainScene::menuCloseCallback(Ref* pSender) { #if (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) || (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) MessageBox("You pressed the close button. Windows Store Apps do not implement a close button.", "Alert"); return; #endif Director::getInstance()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) exit(0); #endif }
5,NewScene.h

#ifndef __NewScene_H__
#define __NewScene_H__

#include "cocos2d.h"
//创建一个SceneTestLayer类继承自cocos2d的Layer类
class SceneTestLayer : public cocos2d::Layer
{
public:
	//构造函数
	SceneTestLayer();
	//初始化函数
	bool init();
	//返回主界面函数
	void backToMainScene(Ref* sender);
	//创建SceneTestLayer层宏
	CREATE_FUNC(SceneTestLayer)
};
#endif

6,NewScene.cpp

#include "NewScene.h"
#include "MainScene.h"
USING_NS_CC;
//构造函数,这里没做什么
SceneTestLayer::SceneTestLayer(){}
/**
 * 初始化函数,用来初始化界面组件
 * 下面的代码很容易理解,我就不一一注解了
 */
bool SceneTestLayer::init()
{
	if (Layer::init())
	{
		auto textItem = MenuItemFont::create("This is NewSence");
		auto item = MenuItemFont::create("Back", CC_CALLBACK_1(SceneTestLayer::backToMainScene, this));
		auto menu = Menu::create(textItem,item, NULL);
		menu->alignItemsVertically();
		this->addChild(menu);
		return true;
	}
	return false;
}
/**
 * 返回主界面的函数
 */
void SceneTestLayer::backToMainScene(Ref* sender){
	auto scene = Scene::create();
	scene->addChild(MainScene::create());
	Director::getInstance()->replaceScene(TransitionFlipX::create(.5, scene));
}

7,GameScene.h

#ifndef __GameSceneLayer_H__
#define __GameSceneLayer_H__

#i
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LeetCode之Decode Ways 下一篇自定义图文混排视图MyImageTextVi..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: