当前位置: 首页 > news >正文

企业网站建设的账务处理/安卓内核级优化神器

企业网站建设的账务处理,安卓内核级优化神器,永春县建设局网站,网站建设教育Cocos2d-x提供了一套UI组件。包括 Label Menu Buttons Checkbox Loading Bar Slider TextField Label Cocos2d-x提供Label对象,可以用真值类型、bitmap(位图)或内置系统字体来创建。 Label BMFont BMFont是一种Label类型,它使…

Cocos2d-x提供了一套UI组件。包括

  1. Label
  2. Menu
  3. Buttons
  4. Checkbox
  5. Loading Bar
  6. Slider
  7. TextField

Label

Cocos2d-x提供Label对象,可以用真值类型、bitmap(位图)或内置系统字体来创建。
Label BMFont

BMFont是一种Label类型,它使用bitmap(位图)字体。位图中的字符由点的矩阵组成。在Label中的每个字符都是一个分隔开的Sprite(精灵),所以每个字符都可以旋转、放大、着色,有不同的锚点或其他属性的改变。
创建BMFont标签需要两个文件: .fnt 文件和.png格式的文字图片。工具Glyph Designer可以自动创建这些文件。从bitmap字体创建Label对象:

auto myLabel = Label::createWithBMFont("bitmapRed.fnt", "Your Text");

Label TTF
如果不需要为每一个分隔开的字体指定的大小和颜色等,那么使用这个将会十分方便。创建Label TTF需要.ttf 字体文件、文本、字本大小:

auto myLabel = Label::createWithTTF("Your Text", "Marker Felt.ttf", 24);

不像BMFont,TTF 可以渲染大小的改变,而不需要不需要单独的字体文件。
如果我们多个Label对象,并且它们都有相同的属性设置,那么我们可以通过TTFConfig对象来管理,再通过TTFConfig 对象来创建Label对象:

// create a TTFConfig files for labels to share
TTFConfig labelConfig;
labelConfig.fontFilePath = "myFont.ttf";
labelConfig.fontSize = 16;
labelConfig.glyphs = GlyphCollection::DYNAMIC;
labelConfig.outlineSize = 0;
labelConfig.customGlyphs = nullptr;
labelConfig.distanceFieldEnabled = false;// create a TTF Label from the TTFConfig file.
auto myLabel = Label::createWithTTF(labelConfig, "My Label Text");

Label SystemFont
SystemFont使用默认的系统字体和大小。

auto myLabel = Label::createWithSystemFont("My Label Text", "Arial", 16);

Label 效果

(1)阴影效果:

auto myLabel = Label::createWithTTF("My Label Text", "myFont.ttf", 16);// shadow effect is supported by all Label types
myLabel->enableShadow();

(2)轮廓效果:

auto myLabel = Label::createWithTTF("My Label Text","myFont.ttf", 16);// outline effect is TTF only, specify the outline color desired
myLabel->enableOutline(Color4B::WHITE, 1));

(3)发光效果:

auto myLabel = Label::createWithTTF("My Label Text", "myFont.ttf", 16);// glow effect is TTF only, specify the glow color desired.
myLabel->enableGlow(Color4B::YELLOW);

Menu and Menu Items

在我们的游戏,我们可能会使用Menu(菜单)对象来导航选项。菜单中可能会包含按钮,如:Play, Quit,Settings , About。但也可以嵌套其他菜单对象。Menu(菜单)对象是一个特殊的Node(节点)对象类型 。
可以创建一个空的Menu对象,作为菜单项的占位符:

auto myMenu = Menu::create();

上面提到的Play、Quit,、Settings 、 About等按钮就是menu items。Cocos2d-x 提供了多种方式来创建menu items,包括使用Label对象、或指定图片来展示。Menu items 通常有两种可能的状态:normal(普通)、selected(选中)。当你点击menu item时,callback(回调)就会被触发。所以我们可以点击menu item,然后运行我们指定的代码。

通过指定图片来创建menu item:

// creating a menu with a single item// create a menu item by specifying images
auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));auto menu = Menu::create(closeItem, NULL);
this->addChild(menu, 1);

通过 MenuItem对象的向量来创建:

Vector<MenuItem*> MenuItems;auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png",
CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));MenuItems.pushBack(closeItem);/* repeat for as many menu items as needed */auto menu = Menu::createWithArray(MenuItems);
this->addChild(menu, 1);

Lambda函数作为Menu的回调函数

从前面的知识,我们知道当点击menu item时会触发回调函数。C++11提供了lambda函数,Cocos2d-x充分利用了lambda函数。lambda函数是在源代码中内联编写的函数。 lambda函数在运行时计算,而不是编译时。
lambda函数示例:

// create a simple Hello World lambda
auto func = [] () { cout << "Hello World"; };// now call it someplace in code
func();

使用lambda函数作为MenuItem的回调函数:

auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png",
[&](Ref* sender){// your code here
});

Buttons

button 会拦截touch事件,当点击时会调用预定义的回调。Button有normal(普通)和selected(选中)两种状态。按钮的外观可以基于它的状态进行改变。创建Button和定义它的回调时,一定要加入#include "ui/CocosGUI.h"

auto button = Button::create("normal_image.png", "selected_image.png", "disabled_image.png");button->setTitleText("Button Text");button->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){switch (type){case ui::Widget::TouchEventType::BEGAN:break;case ui::Widget::TouchEventType::ENDED:std::cout << "Button 1 clicked" << std::endl;break;default:break;}
});this->addChild(button);

Checkbox

CheckBox有5个不同的状态,分三类:normal、selected、disabled:

#include "ui/CocosGUI.h"auto checkbox = CheckBox::create("check_box_normal.png","check_box_normal_press.png","check_box_active.png","check_box_normal_disable.png","check_box_active_disable.png");checkbox->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){switch (type){case ui::Widget::TouchEventType::BEGAN:break;case ui::Widget::TouchEventType::ENDED:std::cout << "checkbox 1 clicked" << std::endl;break;default:break;}
});this->addChild(checkbox);

Loading Bar

当我们游戏时,还没有加载完所有内容时,可以显示加载条给用户,提高用户体验。通常有进度条、状态条、加载条,如 LoadingBar:

#include "ui/CocosGUI.h"auto loadingBar = LoadingBar::create("LoadingBarFile.png");// set the direction of the loading bars progress
loadingBar->setDirection(LoadingBar::Direction::RIGHT);this->addChild(loadingBar);

我们还可以改变LoadingBar的百分比:

#include "ui/CocosGUI.h"auto loadingBar = LoadingBar::create("LoadingBarFile.png");
loadingBar->setDirection(LoadingBar::Direction::RIGHT);// something happened, change the percentage of the loading bar
loadingBar->setPercent(25);// more things happened, change the percentage again.
loadingBar->setPercent(35);this->addChild(loadingBar);

Slider

滑块允许用户通过移动指示器来设置值:

#include "ui/CocosGUI.h"auto slider = Slider::create();
slider->loadBarTexture("Slider_Back.png"); // what the slider looks like
slider->loadSlidBallTextures("SliderNode_Normal.png", "SliderNode_Press.png", "SliderNode_Disable.png");
slider->loadProgressBarTexture("Slider_PressBar.png");slider->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){switch (type){case ui::Widget::TouchEventType::BEGAN:break;case ui::Widget::TouchEventType::ENDED:std::cout << "slider moved" << std::endl;break;default:break;}
});this->addChild(slider);

在这里插入图片描述

TextField

如果你想游戏玩家为自己的角色起一个名字,那么可以用TextField来完成输入。TextField控件就是用于输入文本的。TextField支持触摸事件、焦点、百分比定位和百分比内容大小。

#include "ui/CocosGUI.h"auto textField = TextField::create("","Arial",30);textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){std::cout << "editing a TextField" << std::endl;
});this->addChild(textField);

TextField对象可以完成很多不同的输入,如密码、限制输入字符的长度等等,这些都是内置的功能:

#include "ui/CocosGUI.h"auto textField = TextField::create("","Arial",30);// make this TextField password enabled
textField->setPasswordEnabled(true);// set the maximum number of characters the user can enter for this TextField
textField->setMaxLength(10);textField->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){std::cout << "editing a TextField" << std::endl;
});this->addChild(textField);
http://www.lbrq.cn/news/1362205.html

相关文章:

  • 重庆营销网站建设/最近三天的新闻大事摘抄
  • 安庆网站建设专业/竞价排名采用什么计费方式
  • 网站开发定制企业/怎么可以在百度发布信息
  • 银川网站建设培训哪家好/小说网站排名
  • 网站平台怎么建立/爱站网关键字挖掘
  • 做蓝牙音箱在什么网站上找客户/seddog站长之家
  • 化妆品公司网站源码/搜索引擎竞价排名
  • 中国企业网银怎么转账/seo关键词优化排名公司
  • 网站建设服务合同 律师/谷歌查询关键词的工具叫什么
  • 安州区建设局网站/爱站网 关键词挖掘
  • 淄博 网站seo优化/刷关键词指数
  • 如何给自己的公司网站做优化/线上营销渠道主要有哪些
  • 做网站电销/品牌策划公司哪家好
  • 说明书得制作需要哪些材料/南京关键词优化服务
  • 上海 网站建设/百度app官网下载
  • 福田皇岗社区网站建设/百度快速收录教程
  • 建设一个网站需要哪些方面的开支/百度免费推广方法
  • 网站模版怎么做/青岛网站seo分析
  • 美容美发网站建设方案/app推广方式
  • 如何制作境外网站/域名查询网
  • 一级a做爰精免费网站/百度竞价关键词优化
  • 建设电子商务网站需要什么设备/soe搜索优化
  • 网站内容包括/武汉seo网站优化技巧
  • 郑州建网站msgg/seo网络优化是什么工作
  • 西安网站价格/网站描述和关键词怎么写
  • 中文域名注册管理办法/成都网站seo厂家
  • 扬中会建网站/抖音seo排名软件
  • 朝阳网站制作公司/电脑优化
  • 商城网站设计服务/嘉兴seo
  • 无锡网站开发电话/福州百度seo代理
  • 关于assert()函数,eval()函数,include
  • 利用AI渲染技术提升元宇宙用户体验的技术难点有哪些?
  • 单位长度上的RC参数
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • LLM Prompt与开源模型资源(2)提示工程关键技术
  • 每日算法刷题Day56:7.31:leetcode 栈6道题,用时2h30min