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

cocos2dx 适合初学者的学习笔记【二】

发布时间:2020-12-14 21:10:32 所属栏目:百科 来源:网络整理
导读:内容介绍: 3、场景切换效果//CCTransitionJumpZoom//作用:创建一个跳动的过渡动画//参数1:过渡动作的时间//参数2:切换到目标场景的对象//reScene=CCTransitionJumpZoom::create(t,s);//CCDirector::sharedDirector()-replaceScene(reScene);//CCTransiti

内容介绍:

3、场景切换效果	
//CCTransitionJumpZoom
//作用:创建一个跳动的过渡动画
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionJumpZoom::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionProgressRadialCCW
//作用:创建一个扇形条形式的过渡动画,逆时针方向
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressRadialCCW::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionProgressRadialCW
//作用:创建一个扇形条形式的过渡动画,顺时针方向
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressRadialCW::create(t,s);

//CCTransitionProgressHorizontal
//作用:创建一个水平条形式的过渡动画,
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressHorizontal::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionProgressVertical
//作用:创建一个垂直条形式的过渡动画,
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressVertical::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionProgressInOut
//作用:创建一个由里向外扩展的过渡动画,
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressInOut::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionProgressOutIn
//作用:创建一个由外向里扩展的过渡动画,
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionProgressOutIn::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionCrossFade
//作用:创建一个逐渐透明的过渡动画
//参数1:过渡动作的时间
//参数2:切换到目标场景的对象
//reScene=CCTransitionCrossFade::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionPageTurn
//作用:创建一个翻页的过渡动画
//参数1:过渡动作持续的时间
//参数2:切换的目标场景的对象
//参数3:是否逆向翻页
//reScene=CCTransitionPageTurn::create(t,s,false);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFadeTR
//作用:创建一个部落格过渡动画,从左下到右上
//参数1:过渡动作持续的时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionFadeTR::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFadeBL
//作用:创建一个部落格过渡动画,从右上到左下
//参数1:过渡动作持续的时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionFadeBL::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFadeUp
//作用:创建一个从下到上,条形折叠的过渡动画
//参数1:过渡动作持续的时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionFadeUp::create(t,s);
//CCDirector::sharedDirector()->replaceScene(s);

//CCTransitionFadeDown
//作用:创建一个从上到下,条形折叠的过渡动画
//参数1:过渡动作持续的时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionFadeDown::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionTurnOffTiles
//作用:创建一个随机方格消失的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionTurnOffTiles::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSplitRows
//作用:创建一个分行划分切换的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSplitRows::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSplitCols
//作用:创建一个分列划分切换的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSplitCols::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFade
//作用:创建一个逐渐过渡到目标颜色的切换动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:目标颜色
//reScene=CCTransitionFade::create(t,ccc3(255,0));
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFlipX
//作用:创建一个x轴反转的切换动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//kOrientationDownOverkOrientationLeftOverkOrientationRightOverkOrientationUpOver
//reScene=CCTransitionFlipX::create(t,kOrientationRightOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFlipY
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//reScene=CCTransitionFlipY::create(t,s
//,kOrientationDownOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionFlipAngular
//作用:创建一个带有反转角切换动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//reScene=CCTransitionFlipAngular::create(t,kOrientationLeftOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionZoomFlipX
//作用:创建一个带有缩放的x轴反转切换的动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//reScene=CCTransitionZoomFlipX::create(t,kOrientationLeftOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionZoomFlipY
//作用:创建一个带有缩放的Y轴反转切换的动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//reScene=CCTransitionZoomFlipY::create(t,kOrientationDownOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionZoomFlipAngular
//作用:创建一个带有缩放,反转角切换的动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//参数3:反转类型的枚举变量左右上下
//reScene=CCTransitionZoomFlipAngular::create(t,kOrientationRightOver);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionShrinkGrow
//创建一个放缩交替的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionShrinkGrow::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionRotoZoom
//创建一个旋转放缩交替的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionRotoZoom::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionMoveInL
//作用:创建一个从左边推入覆盖的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionMoveInL::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionMoveInR
//作用:创建一个从右边推入覆盖的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionMoveInR::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionMoveInB
//作用:创建一个从下边推入覆盖的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionMoveInB::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionMoveInT
//作用:创建一个从上边推入覆盖的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionMoveInT::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSlideInL
//作用:创建一个从左侧推入并顶出旧场景的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSlideInL::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSlideInR
//作用:创建一个从右侧推入并顶出旧场景的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSlideInR::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSlideInT
//作用:创建一个从顶部推入并顶出旧场景的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSlideInT::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

//CCTransitionSlideInB
//作用:创建一个从下部推入并顶出旧场景的过渡动画
//参数1:过渡动作的持续时间
//参数2:切换的目标场景的对象
//reScene=CCTransitionSlideInB::create(t,s);
//CCDirector::sharedDirector()->replaceScene(reScene);

4、动作
autolabel=LabelTTF::create("test","Courier",30);
	label->setPosition(100,100);
	addChild(label);
	autolistener=EventListenerTouchOneByOne::create();
	listener->onTouchBegan=[label](Touch*t,Event*e){
		//if(label->getBoundingBox().containsPoint(t->getLocation())){
			//label->runAction(MoveTo::create(1,Point(300,300)));
			label->runAction(MoveBy::create(1,Point(-10,-10)));
			//label->runAction(MoveBy::create(1,Point(-100,-100))->reverse());//动作反转
			//label->runAction(Repeat::create(RotateBy::create(1,180),3));//一个动作在1秒内旋转180度3次
			//label->runAction(RepeatForever::create(RotateBy::create(1,180)));//一个动作在1秒内旋转180无限次
			//label->runAction(Spawn::create(MoveBy::create(1,ccp(100,100)),RotateBy::create(1,360),NULL));//同时执行多个动作
			//label->runAction(Sequence::create(MoveBy::create(1,NULL));//序列动作,先执行再执行
			//label->runAction(Sequence::create(MoveBy::create(1,CallFunc::create([](){MessageBox("","");}),NULL));//动作事件
		//}
		returnfalse;
	};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,label);

5、触摸、按键用户交互
	(1):单点触摸
	MenuItemFont*l=MenuItemFont::create("clickme");
	l->setPosition(visibleSize.width/2,visibleSize.height/2);
	addChild(l);
	EventListenerTouchOneByOne*listener=EventListenerTouchOneByOne::create();
	listener->onTouchBegan=[](Touch*t,Event*e){
		if(e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){//判断事件对象是否本身
			MessageBox("","");
		}
		returnfalse;//判断是否事件传递下去
	};
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,l);
	(2):移动触摸事件
	listener->onTouchMoved=[](Touch*t,Event*e){
		log("touchMoved");
	};
	(3):事件结束
	listener->onTouchEnded=[](Touch*t,Event*e){
		MessageBox("onTouchEnded","");
	};
	(4):多点触摸
	autolistener=EventListenerTouchAllAtOnce::create();
	listener->onTouchesBegan=[](std::vector<Touch*>ts,Event*e){
		//MessageBox("onTouchesBegan","");
	};
	listener->onTouchesMoved=[](std::vector<Touch*>ts,Event*e){
		MessageBox("onTouchesMoved","");
	};
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);
	(5):加速度传感器
	Device::setAccelerometerEnabled(true);//开启
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(EventListenerAcceleration::create([](Acceleration*a,Event*e){
		log("x:%g,y:%g,z:%g",a->x,a->y,a->z);
	}),this);
	(6):按键传递
	autolistener=EventListenerKeyboard::create();
	listener->onKeyReleased=[](EventKeyboard::KeyCodecode,Event*e){
		log("keycode:%d",code);
		switch(code){
			caseEventKeyboard::KeyCode::KEY_BACKSPACE:
			Director::getInstance()->end();
			break;
			default:
				break;
		}
	};
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);

5、绘图
autod=DrawNode::create();
d->drawTriangle(Point(100,100),Point(100,300),Color4F::BLUE);

(编辑:李大同)

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

    推荐文章
      热点阅读