Cocos2dx学习总结一

标签创建,即一段字符串的显示:

CCLabelTTF* label = CCLabelTTF::create("Hi,how are you?","Arial",40);   //三个参数为:要显示的字符串、字体、大小
设置位置:

label->setPosition(ccp(200,200));   //两个参数:以左下角为原点的两个坐标值
场景切换:

CCTransitionSlideInT::create(3.0f,SecondScene::scene());   //从上方滑动下来,两个参数:float t:切换特效动画的播放时间,CCScene *scene:即将要显示的场景类
相应的切换动画还有:

CCTransitionJumpZoom:原场景缩小弹出,新场景放大弹入

CCTransitionProgressRadialCCW:逆时针切换

CCTransitionProgressHorizontal:水平向右切换

CCTransitionProgressInOut:从里向外切换

CCTransitionProgressProgressCrossFade:原场景慢慢消失,新场景同时慢慢出现

CCTransitionProgressPageForward:翻页,下一页

CCTransitionFadeTR:方块切换左下角

CCTransitionFadeUp:从下向上的百叶窗

CCTransitionTurnOffTiles:方块切换,到处都是

CCTransitionSplitRows:分离的矩形横向切换

CCTransitionFade:渐变消失(变黑),渐变出现

FlipXLeftOver:整体横向翻转,从左往右

ZoomFlipXLeftOver:整体横向翻转,从左往右,并且根据离视野远近缩放大小

CCTransitionShrinkGrow:原场景往后方缩小消失,新场景从后方前放到出现

CCTransitionRotoZoom:原场景螺旋式往后方缩小消失,新场景螺旋式往前方放大出现

CCTransitionMoveInL:新场景从左向右移入

CCTransitionSlideInL:新旧场景同时从左向右移动

CCTransitionJumpZoom:原场景缩小逃走,新场景缩小跳进

回调函数,相关说明在 http://cn.cocos2d-x.org/tutorial/show?id=1832

这里从介绍的回调函数中选择menu_selector ()   //菜单选中回调函数

例:

CCMenuItemImage* pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(SecondScene::popScene));
pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width-20,20));  //设置按钮的位置,同时调用了popScene函数

创建了函数popScene,用于恢复旧场景:

void SecondScene::popScene(CCObject* pSender){
CCDirector::sharedDirector()->popScene();
}

如上为恢复场景函数popScene()的定义

推进场景:

CCDirector::sharedDirector()->pushScene(SecondScene::scene());

创建层:

CCLayer* layer = CCLayer::create();
创建精灵对象:

CCSprite* sprite = CCSprite::create("CloseNormal.png");
让所有的菜单项在垂直方向上自动排列

CCMenu* pMenu = CCMenu::create(pCloseItem,pLabelItem,NULL);  //创建菜单
pMenu->alignItemsVertically();    //让所有菜单项垂直排列
采用了回调函数:

menu_selector(HelloWorld::menuCloseCallback));

Cocos2dx中重要的三个类:

1.CCObject:Cocos2dx引擎的基类,大部分类都继承了它。

2.CCNode:拥有简单功能的类,特别是update函数的调用。

3.CCLayer:继承CCNode,拥有多种功能的类,特别是屏幕触摸监听。

播放背景音乐:

CocosDenshion::SimpleAudioEngine::shareEngine()->playBackgroundMusic("hello.mp3",true);  //注意其中hello.mp3应该存放于项目文件夹中的Resource文件夹中
播放短音:

CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("fight.wav");    //短音如打斗的声音等。
九妹,详情参考:http://www.mamicode.com/info-detail-172844.html

使用九妹应该包括cocos-ext.h头文件,应该加上:

#include “cocos-ext.h"
using namespace cocos2d:extension;
注意需要在项目的属性->配置属性->c/c++->附加包含目录添加

$(SolutionDIr)extensions和选择你的cocos文件目录,如: D:\cocos2dx\cocos2d-2.1beta3-x-2.1.1\cocos2d-2.1beta3-x-2.1.1\extensions

再从链接器的附加依赖项添加:libExtensions.lib

九妹的使用:

CCScale9Sprite* btnNormal = CCScale9Sprite::create("button.png");
CCScale9Sprite* btnDown = CCScale9Sprite::create("buttonHighLighted.png");
CCLabelTTF *title = CCLabelTTF::create("hello","MarkerFelt",30);
CCControlButtton* controlBtn = CCControlButton::create(title,btnNormal);    //创建按钮,按钮大小会根据标题自动调整
controlBtn->setBackgroundSpriteForState(btnDowm,CCControlStateSelected);    //设置按钮按下时的图片
以上按钮其实很小,但由于九妹的存在,能够填充到与title同等大小。

按钮事件监听举例:

controlBtn->addTargetWithActionForControlEvents(
this,
cccontrol_selector(HelloWorld::touchDown),
CCControlEventTouchDown);
其中touchDown函数的实现:

void HelloWorld::touchDown(CCObject* pSender,CCControlEvent event){
<span style="white-space:pre">	</span>CCLOG("touchDown");          //通过调试可以看到每点击一次出现一次"touchDown"
}

事件监听举例2:

potentiometer->addTargetWithActionForControlEvents(
			this,
			cccontrol_selector(HelloWorld::onValueChange),
			CCControlEventValueChanged);                //bool HelloWorld::init()函数中
void HelloWorld::onValueChange(CCObject* pSender,CCControlEvent event){
	CCControlPotentiometer* potentiometer = (CCControlPotentiometer*)pSender;
	CCString* valueStr = CCString::createWithFormat("%f",potentiometer->getValue());
	CCLOG(valueStr->getCString());
}

这个开关挺不错的,所以记下来了:


转动开关:


输出了许多值,可以通过获取到的value来实现音量的控制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值