阅读背景:

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

来源:互联网 

内容介绍:

导演     -》     场景     -》      层    -》    精灵Director         Scene            Layer         Sprite创建场景、层、精灵都是用::create(),静态方法创建。创建导演用: Director::getInstance();Sprite 精灵是一个2D图像,可以移动、旋转、放大缩小、活动,还能进行其他变化。精灵(通过Sprite”类实现)还可以有其他精灵当作子类。当父类被转变时,该父类下的所有子类也将被转变。获得游戏界面可见区域大小:Size visibleSize = Director::getInstance()->getVisibleSize();宽:visibleSize.width高: visibleSize.height【坐标】cocos2d游戏中: 起点坐标(x=0, y=0)位于左下角,这意味着屏幕位于 X轴从屏幕最左边开始,由左向右渐增 Y轴坐标从屏幕最下方开始,由下向上渐增。锚点:ccp(0.5,0.5),0.5代表x,Y方向的一半,值位于0和1之间由于每个类都继承自CCNode(Cocos2d-x的最顶层类),所以每个类都会默认有anchorPoint属性。 当我们在一个位置画一个的对象的时候,Cocos2d-x会合并属性位置和anchorPoint。当然,当旋转一个对象时,Cocos2d-x会围绕绕anchorPoint旋转的每个note节点的锚点默认都是0.5,0.5setIsRelativeAnthorPoint(true);//设置坐标以锚点算Director::convertToGl(CCPoint);//转成openGl坐标Director::convertToUl(CCPoint);//转成屏幕的坐标【UI系统】1.字体,标签LabelTTF *l = LabelTTF:create("Hello","宋体",30);l->setPosition(ccp(100,100));//设置字体位置l->setString("Hello Cocos2dx");//设置字体内容l->setColor(ccc3(255,0,0));//设置颜色l->setScale(3.0f);//放大3倍l->setRotation(45.f);//设置旋转角度LabelBMFont *f = LabelBMFont::create("test","fonts/bitmapFontTest.fnt")LabelAtlas 2.菜单(MenuItemFont、MenuItemLabel、MenuItemImage、MenuItemSprite、MenuItemToggle)  auto pBtn = MenuItemFont::create("go back", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));//函数声明:void HelloWorld::menuCloseCallback(Ref* pSender)  //或者写成 auto pBtn = MenuItemFont::create("go back", [](Ref *ref ){MessageBox("","");});  Menu* pMenu = Menu::create(pBtn, NULL);  pMenu->setPosition(CCPointZero);  addChild(pMenu);LabelTTF * ttf = LabelTTF::create("Hello","宋体",40);//MenuItemLabel * ml = MenuItemLabel::create(ttf,[](Ref *ref){MessageBox("","");});MenuItemLabel * ml = MenuItemLabel::create(ttf,CC_CALLBACK_1(HelloWorld::noButton,this));Menu *m = Menu::create(ml,NULL);addChild(m);// auto item2 = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::noButton, this) );auto item2 = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", [](Ref *ref){MessageBox("","");}); Menu *m = Menu::create(item2,NULL); addChild(m);auto spriteNormal = Sprite::create(s_MenuItem, Rect(0,23*2,115,23));    auto spriteSelected = Sprite::create(s_MenuItem, Rect(0,23*1,115,23));    auto spriteDisabled = Sprite::create(s_MenuItem, Rect(0,23*0,115,23));    auto item1 = MenuItemSprite::create(spriteNormal, spriteSelected, spriteDisabled, CC_CALLBACK_1(HelloWorld::noButton, this) );     auto item1 = MenuItemToggle::createWithCallback( CC_CALLBACK_1(HelloWorld::noButton, this),                                                                MenuItemFont::create( "On" ),                                                                 MenuItemFont::create( "Off"),                                                                 NULL ); Menu *m = Menu::create(item1,NULL); addChild(m);3.进度条4.计时器【事件处理】1、输入框TextFieldTTF *tf = TextFieldTTF::textFieldWithPlaceHolder("input","宋体",20);tf->setPosition(visibleSize.width/2,visibleSize.height/2);auto listener = EventListenerTouchOneByOne::create();listener->onTouchBegan = [tf](Touch *t,Event *e){ if(tf->getBoundingBox().containsPoint(t->getLocation())){//监听函数tf->attachWithIME();}else{tf->detachWithIME();}return false;}; Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,tf);addChild(tf);2、场景切换LabelTTF *label = LabelTTF::create("Show next scene","Courlier",36);addChlid(label);label->setPosition(viibleSize.width/2,visibleSize.height/2);auto 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);导演     -》     场景     -》   



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: