cocos2d-x3.0 相对布局(一)

2dx相对布局和Android非常类似。假设前完成Android它应该是easy入门。

        Size widgetSize = Director::getInstance()->getWinSize();

        Text* alert = Text::create("Layout", "fonts/Marker Felt.ttf", 30 );
        alert->setColor(Color3B(159, 168, 176));
        alert->setPosition(Point(widgetSize.width / 2.0f,
                                 widgetSize.height / 2.0f - alert->getSize().height * 3.075f));

        addChild(alert);

        Layout* layout = Layout::create();
        layout->setSize(Size(widgetSize.width, widgetSize.height));

        //横向排列,这里相似Android里的线性布局
        layout->setLayoutType(LAYOUT_RELATIVE);
        /*以图片为背景*/
        layout->setBackGroundImageScale9Enabled(true);
        layout->setBackGroundImage("green_edit.png");

        layout->setPosition(Point(0,0));
        addChild(layout);

        Button* button_TopLeft = Button::create("animationbuttonnormal.png", "animationbuttonpressed.png");

        layout->addChild(button_TopLeft);

        RelativeLayoutParameter* rp_TopLeft = RelativeLayoutParameter::create();
        rp_TopLeft->setAlign(RELATIVE_ALIGN_PARENT_TOP_LEFT);
        button_TopLeft->setLayoutParameter(rp_TopLeft);

        //top center horizontal
        Button* button_TopCenter = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_TopCenter);

        RelativeLayoutParameter* rp_TopCenter = RelativeLayoutParameter::create();
        rp_TopCenter->setAlign(RELATIVE_ALIGN_PARENT_TOP_CENTER_HORIZONTAL);
        button_TopCenter->setLayoutParameter(rp_TopCenter);

        Button* button_TopRight = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_TopRight);

        RelativeLayoutParameter* rp_TopRight = RelativeLayoutParameter::create();
        rp_TopRight->setAlign(RELATIVE_ALIGN_PARENT_TOP_RIGHT);
        button_TopRight->setLayoutParameter(rp_TopRight);

        //left center
        Button* button_LeftCenter = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_LeftCenter);

        RelativeLayoutParameter* rp_LeftCenter = RelativeLayoutParameter::create();
        rp_LeftCenter->setAlign(RELATIVE_ALIGN_PARENT_LEFT_CENTER_VERTICAL);
        button_LeftCenter->setLayoutParameter(rp_LeftCenter);

        //center
        Button* buttonCenter = Button::create("animationbuttonnormal.png","animationbuttonnormal.png");
        layout->addChild(buttonCenter);

        RelativeLayoutParameter* rpCenter = RelativeLayoutParameter::create();
        rpCenter->setAlign(RELATIVE_CENTER_IN_PARENT);
        buttonCenter->setLayoutParameter(rpCenter);

        Button* button_RightCenter = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_RightCenter);

        RelativeLayoutParameter* rp_RightCenter = RelativeLayoutParameter::create();
        rp_RightCenter->setAlign(RELATIVE_ALIGN_PARENT_RIGHT_CENTER_VERTICAL);
        button_RightCenter->setLayoutParameter(rp_RightCenter);

        //left bottom
        Button* button_LeftBottom = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_LeftBottom);

        RelativeLayoutParameter* rp_LeftBottom = RelativeLayoutParameter::create();
        rp_LeftBottom->setAlign(RELATIVE_ALIGN_PARENT_LEFT_BOTTOM);
        button_LeftBottom->setLayoutParameter(rp_LeftBottom);

        //bottom center
        Button* button_BottomCenter = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_BottomCenter);

        RelativeLayoutParameter* rp_BottomCenter = RelativeLayoutParameter::create();
        rp_BottomCenter->setAlign(RELATIVE_ALIGN_PARENT_BOTTOM_CENTER_HORIZONTAL);
        button_BottomCenter->setLayoutParameter(rp_BottomCenter);

        Button* button_RightBottom = Button::create("animationbuttonnormal.png","animationbuttonpressed.png");
        layout->addChild(button_RightBottom);

        RelativeLayoutParameter* rp_RightBottom = RelativeLayoutParameter::create();
        rp_RightBottom->setAlign(RELATIVE_ALIGN_PARENT_RIGHT_BOTTOM);
        button_RightBottom->setLayoutParameter(rp_RightBottom);

时间: 2024-10-12 07:09:20

cocos2d-x3.0 相对布局(一)的相关文章

cocos2d(3.0)一些基础的东西

1.创建项目后环境配置: 附加文件夹:加入 $(EngineRoot) $(EngineRoot)cocos $(EngineRoot)cocos\editor-support $(EngineRoot)build\Debug.win32 ..\proj.win32 通用属性加入 (先从 cocos2d-x-3.0rc0 中 extensions   cocos\editor-support   cocos\ui 加入进去) libcocosstudio libExtensions libGUI

如何在Cocos2D 1.0 中掩饰一个精灵(六)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 掩饰一个精灵:实现代码 打开HelloWorldLayer.m并且在init方法上方添加如下方法: - (CCSprite *)maskedSpriteWithSprite:(CCSprite *)textureSprite maskSprite:(CCSprite *)maskSprite { // 1 CCRenderTexture * rt = [CCRe

adminLTE 教程 -0 基础布局

基础布局. 1.meta没的说 2.引入bootstrap 3.引入字体库,肯定用得到,下载到本地放在plugins下也可以 4.adminLTE子什么的文件肯定需要 5.皮肤skin,可以引入_all...,但是如果只需要一个皮肤的话,比如只需要蓝色,直接引入skin-blue就行,毕竟越简越好 6.兼容IE8的两个js文件 7.jquery没的说 8.fastclick,触摸设备快速点击体验,不想兼容手机可以去掉 9.slimscroll,菜单和页面中的滚动条样式,放上去毕竟好看嘛.(看一下

cocos2d 3.0 屏幕适配

1.解决方案 先直接给出解决方案,再慢慢解释,当然这个解决方案也不是完全完美的. [cpp] view plaincopy //如果是横屏游戏: glview->setDesignResolutionSize(960, 640, ResolutionPolicy::FIXED_HEIGHT); //一张960x640的背景显示 auto visibleSize = Director::getInstance()->getVisibleSize(); auto Bg = Sprite::crea

Android5.0 - 微信布局 <持续更新>

此次布局是根据 鸿洋大神的发布 而做 但是他的是布局还是在 2.3 4.4 ,此更新在5.0 还是有些异处 比如menu的显示不需要去写反射了直接 给你排布好了, 但是子menu还是需要去找到menu buildier 以及 setOptionalIconsVisible 如下 private void setIconEnable(Menu menu, boolean b) { // TODO Auto-generated method stub try { Class<?> clazz =

DISCUZ X3.0登录代码

// 初始化UC if(!function_exists('uc_user_login')) { loaducenter(); } //加载uc_user_login()方法,位于uc_client/client.php之中,执行登录第一步 $result = uc_user_login('admin', '[email protected]', 0, 1); 下一步将结果集序列化 list($tmp['uid'], $tmp['username'], $tmp['password'], $tm

DISCUZ X3.0 积分增减以及记录

1.调用source/function/function_core.php 里面的 updatemembercount()方法,该方法只是一个简单的入口方法 /* * @$uids 用户 * @$dataarr 操作规则,如扣减第二个积分2分:array ('extcredits2' => -2); * @$checkgroup 是否检查用户组升级,通常未true * @$operation 操作类型,默认空,如果需要增加记录,需要填充 * @$relatedid 关系ID,例如帖子ID * @

最新版本cocos2d&#173;2.0&#173;x&#173;2.0.2使用新资源加载策略!不再沿用-hd、-

 前段时间cocos2dx更新了最新版本cocos2d-2.0-x-2.0.2,也从这个版本开始对于资源加载与管理都改变了策略. 在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源方式,对于图片名后添加-hd,-ipad,-ipadhd方式,当用户开启项目的高清视网膜后就可以默认寻找对应的资源.但是从cocos2d-2.0-x-2.0.2版本开始,资源加载策略不在如此了.对跨平台整合不清楚的请看cocos2dx最新2.x版本跨平台整合NDK+Xcode 最新资源加载策略

Cocos2d 3.0继承自Sprite的类在addChild后出现故障

当继承自Sprite的类被addChild到其它的Node里后出现例如以下图问题,说明没有调用父类Sprite::init()的方法,由于父类Sprite里的_textureAtlas须要初始化为null,在继承自Sprite的子类里的构造函数或init方法里加入Sprite::init()就能够了.