COCOS2DX的场景切换and动作

关于场景切换:

首先要明确的一点就是,在一个cocos程序执行之前,第一个展示出来的场景是利用applicationDidFinishLaunching() 函数里面的 director->runWithScene(scene);这个函数来运行的,这个函数只在程序一开始运行还没有场景的时候进行,也就是一个场景初始化的函数。一旦场景被初始化了,那么下一次想展示别的场景就需要使用场景切换函数,即ReplaceScene.

利用director对象,进行场景切换。其实cocos2dx中,甚至是大部分计算机的东西,一定不要死记硬背,那是没用的。计算机里面的所有东西都是有道理的,比如这个场景切换,场景切换那么肯定是整个程序的导演管理,一个程序只有一个导演。

那么就利用

Director::getInstance()->replaceScene(自己创建的场景);

这样的方法来实现场景的切换。


关于动作:

动作的执行其实主要是一个API就是RunAction.

可以对层中的游戏元素设置动作。其实这个内容看api就可以。

我直接把我的源码放上来,应该很容易理解:


auto label = LabelTTF::create("xuran", "宋体", 36);
	label->setPosition(visibleSize.width/2, visibleSize.height/2);
	addChild(label);

	auto listener = EventListenerTouchOneByOne::create();
	listener->onTouchBegan = [label](Touch *t, Event *e)
	{
		if(label->getBoundingBox().containsPoint(e->getCurrentTarget()->convertToNodeSpace(t->getLocation())))
		{
			//label->runAction(MoveBy::create(1,Point(-50,-50))->reverse());												执行反向动作
			//label->runAction(Spawn::create(MoveBy::create(1,Point(50,50)), RotateBy::create(1,360), NULL));				执行并行动作
			//label->runAction(Sequence::create(MoveBy::create(1,Point(100,100)), RotateBy::create(1,360), NULL));          执行序列动作
			//label->runAction(RepeatForever::create(RotateBy::create(1,180)));                                             执行永久重复动作
			//label->runAction(Sequence::create(MoveBy::create(1,Point(100,100)), RotateBy::create(1,360), CallFunc::create([]()
			//{
			//	MessageBox("action finish", "hahahahah");
			//}),NULL));    
			//Director::getInstance()->replaceScene(ImageScene::CreateScene());                                             场景切换
		}
		return false;
	};

	//label->runAction(RepeatForever::create(RotateBy::create(1,180)));
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值