cocos2dx-常用控件的使用(二)
发布时间:2020-12-14 20:12:49 所属栏目:百科 来源:网络整理
导读:cocos2dx其实也和普通软件开发一样,不外乎一些控件的组合,再配合一些逻辑的处理,就成了我们熟悉的游戏了。 今天就让我们一起来熟悉一下常用的控件 1.在游戏开发中我们把每一个界面称作一个场景(Scene),每一个场景是由很多层(Layer)组成的,每一个层中又
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);好了,基本空间就介绍到这里,接下来就是不断熟悉的过程了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |