cocos2dx-常用控件的使用(二)

cocos2dx-常用控件的使用(二),第1张

概述cocos2dx其实也和普通软件开发一样,不外乎一些控件的组合,再配合一些逻辑的处理,就成了我们熟悉的游戏了。 今天就让我们一起来熟悉一下常用的控件 1.在游戏开发中我们把每一个界面称作一个场景(Scene),每一个场景是由很多层(Layer)组成的,每一个层中又包含了很多精灵(Sprite),当然我们别忘了我们最大的指挥官导演(Director)。 接下来我们看一看他们是怎么运作的。 首先在Ap

cocos2dx其实也和普通软件开发一样,不外乎一些控件的组合,再配合一些逻辑的处理,就成了我们熟悉的游戏了。

今天就让我们一起来熟悉一下常用的控件

1.在游戏开发中我们把每一个界面称作一个场景(Scene),每一个场景是由很多层(Layer)组成的,每一个层中又包含了很多精灵(Sprite),当然我们别忘了我们最大的指挥官导演(Director)。

接下来我们看一看他们是怎么运作的。

首先在AppDeletegate.cpp中我们看到如下代码

bool AppDelegate::applicationDIDFinishLaunching() {    // initialize director    auto director = Director::getInstance();    auto glvIEw = director->getopenGLVIEw();    if(!glvIEw) {        glvIEw = GLVIEwImpl::create("My Game");        director->setopenGLVIEw(glvIEw);    }    // turn on display FPS    director->setdisplayStats(true);    // set FPS. the default value is 1.0/60 if you don't call this    director->setAnimationInterval(1.0 / 60);    // create a scene. it's an autorelease object    auto scene = HelloWorld::createScene();    // run    director->runWithScene(scene);    return true;}
关键在于
director->runWithScene(scene);
把场景运行起来

然后进入场景

Scene* HelloWorld::createScene(){    // 'scene' is an autorelease object    auto scene = Scene::create();        // 'layer' is an autorelease object    auto layer = HelloWorld::create();    // add layer as a child to scene    scene->addChild(layer);    // return the scene    return scene;}
创建一个场景,再创建一个层,并且把这个层加入到场景中

最后执行HelloWorld::init()方法进行一些初始化

2.常用控件

·消息对话框MessageBox

MessageBox("消息内容","消息标题");

·Log和c语言中的print用法一致
log("hello cocos");

·标签Label
    LabelTTF *label = LabelTTF::create();    label->setString("hello");    label->setFontSize(36);    label->setposition(size.wIDth/2,size.height/2);    addChild(label);

·输入文本TextFIEldTTF

这个比较复杂,点击之后要唤起输入法

    //输入文本    TextFIEldTTF *tf = TextFIEldTTF::textFIElDWithPlaceHolder("在这里输入","宋体",20);    //设置位置    tf->setposition(size.wIDth/2,size.height/2);    addChild(tf);    //注册监听    auto Listener = EventListenertouchOneByOne::create();    //传递tf    Listener->ontouchBegan = [tf](touch *t,Event *event){        if(tf->getBoundingBox().containsPoint(t->getLocation())){            tf->attachWithIME();        }else{            tf->detachWithIME();        }                return false;    };    //加入监听    Director::getInstance()->getEventdispatcher()->addEventListenerWithSceneGraPHPriority(Listener,tf);

·菜单Menu
auto closeItem = MenuItemImage::create(                                           "Closenormal.png","CloseSelected.png",CC_CALLBACK_1(HelloWorld::menuCloseCallback,this));    	closeItem->setposition(Vec2(origin.x + visibleSize.wIDth - closeItem->getContentSize().wIDth/2,origin.y + closeItem->getContentSize().height/2));    // create menu,it's an autorelease object    auto menu = Menu::create(closeItem,NulL);    menu->setposition(Vec2::ZERO);    this->addChild(menu,1);
好了,基本空间就介绍到这里,接下来就是不断熟悉的过程了 总结

以上是内存溢出为你收集整理的cocos2dx-常用控件的使用(二)全部内容,希望文章能够帮你解决cocos2dx-常用控件的使用(二)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1036102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存