Kanzi常用操作4
十四、如何自定义消息
首先创建属性
然后将数据设置为消息即可
十五、如何通过代码获取节点
以空节点为例
ScreenSharedPtr screenNode = getScreen();//获取屏幕单例
turnleftcontrolNode_ = screenNode->lookupNode<EmptyNode2D>(
"#turnleftcontrol");//lookupNode获取节点,其中模板参数是节点类型,函数的实参是节点的别名
十六、如何通过代码获取自定义属性
以bool属性为例,自定义的bool属性需要通过类模板DynamicPropertyType来生成对应的类并获取
示例
using BoolDynamicPropertyTypeSharedPtr = shared_ptr<DynamicPropertyType<bool>>;
using BoolDynamicPropertyType = DynamicPropertyType<bool>; BoolDynamicPropertyTypeSharedPtr turnleft_;
turnleft_ = make_shared<BoolDynamicPropertyType>("turnleft");//"turnleft"是kanzi工程中自定义属性的属性名
十七、如何通过代码获取自定义的消息
自定义消息需要通过模板类DynamicMessageType<MessageArguments>来获取
示例
using MessageDynamicMessageTypeSharedPtr =shared_ptr<DynamicMessageType<MessageArguments>>;
using MessageDynamicMessageType = DynamicMessageType<MessageArguments>; MessageDynamicMessageTypeSharedPtr turnleftmessage_;
turnleftmessage_=make_shared<MessageDynamicMessageType("turnleftmessage");//"turnleftmessage"是kanzi工程中自定义消息的消息名
十八、如何通过代码实现自定义消息的触发
首先需要将消息和触发函数进行一个绑定,消息类似于Qt中的信号,触发函数类似于Qt中的槽函数,与Qt稍微不同的是,添加消息触发需要指定节点
示例
turnleftcontrolNode_->addMessageHandler(*turnleftmessage_,
bind(&Class::onTurnLeftMessageReceived, this));
addMessageHandler的第一个参数是消息类型,第二个参数是成员函数对象,该成员函数对象通过bind生成
上述代码就表示节点turnleftcontrolNode_会接收消息turnleftmessage_,当收到消息的时候,会触发成员函数&Class::onTurnLeftMessageReceived
可以在该成员函数中添加对应的触发动作
十九、如何通过代码获取属性值
bool leftflag_ = turnleftcontrolNode_->getProperty(*turnleft_);
上述代码的意义就是获取节点turnleftcontrolNode_上的自定义bool属性*turnleft_的值,并初始化leftflag_
二十、如何通过代码设置属性值
turnright3DNode_->setProperty(Node::VisibleProperty, true);
上述代码的意义就是设置节点turnright3DNode_上的非自定义的visible属性为true;
二十一、如何让字体的颜色渐变
可以通过glsl中的mix函数实现
vec4 color = mix(startcolor, endcolor, vTexCoord.x * coef);
其中,startcolor和endcolor是插值的起止颜色,vTexCoord.x纹理横坐标,作为横向插值系数,coef是一个因子,调整插值系数的大小,控制渐变程度
效果
二十二、使用Scroll View 2D制作滑动列表
节点结构如下
当滑动scroll view 2d时,改变stack layout的y方向的平移属性,如下图
此外,还要设置scroll view 2d的滑动范围以及滑动轴
如此,就能实现滑动列表了
一次滑动一个就是在滑动结束时,对stack layout的y方向的值进行判断
当满足条件时,设置相应的位置即可
Kanzi常用操作4相关推荐
- Kanzi常用操作2
1.绑定 绑定类似于C++中的引用,一个变量的变化会引起连锁反应 如何设置绑定 slider控制以文字显示为例 首先找到要控制哪个节点的哪个属性,比如要控制text的Text属性,就可以在text节点 ...
- Kanzi常用操作3
十.如何添加动画 首先选择节点,添加一个animation player 然后选中创建出来的动画片段并双击 之后会弹出一个坐标系 将想要控制的属性拖入该坐标系的左侧栏 坐标系中的手掌图标负责拖动坐标系 ...
- Kanzi常用操作1
1.如何让球体不走样 将摄像机的参数FOV调整小一些,原理见计算机图形学笔记 2.如何添加整个工程的背景 直接在视口上面加一个图片即可 3.如何修改2D字体的颜色?? 2D字体实际是一张图片,前景是字 ...
- TensorFlow常用操作:代码示例
1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...
- Ubuntu 常用操作
Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...
- IOS沙盒Files目录说明和常用操作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...
- 用Python轻松搞定Excel中的20个常用操作
来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...
- python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str
python和R对dataframe的常用操作的差异:head.tail.shape.dim.nrow.ncol.descirbe.summary.str # python df.head() # R ...
- 【node】Sequelize常用操作、基本增删改查
[node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...
最新文章
- 2435: [Noi2011]道路修建
- Linux du命令和df命令区别
- 进程间通信(1) dll 实现进程的内存共享
- AD管控下的弹性云桌面和文件共享最佳实践
- android gradle build process
- Pandas将列表(List)转换为数据框(Dataframe)
- Java中文件路径的写法
- Linux 各类软件整理汇总
- c语言如何遍历数组,C语言数组遍历
- erp系统与mes集成:制造业信息化发展中必不可少的阶段
- unreal歌曲百度云下载_Unreal_Engine_4_1
- monitorServer IBM Tivoli Enterprise Monitor Server
- exsi rh2288hv5 驱动_华为RH2288H服务器引导ServiceCD安装Windows Server操作系统
- win10 无法访问samba文件,提示SMB1是不安全协议解决方案
- 知识图谱学习(一)(笔记整理)
- 第四范式业界首推免费智能客服服务
- Codeforces Round #617 (Div. 3)
- 通过形状先验引导的3D目标检测方法(Disp R-CNN解读)
- 网站、网页的自身优化--(如何让网站被搜索引擎搜索到)
- php框架 s,开源免费的PHP框架|轻量级PHP框架(DecSoft's Humm PHP)下载 V2019.4 官方版 - 比克尔下载...