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-常用控件的使用(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)