十四、如何自定义消息

首先创建属性

然后将数据设置为消息即可

十五、如何通过代码获取节点
以空节点为例

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相关推荐

  1. Kanzi常用操作2

    1.绑定 绑定类似于C++中的引用,一个变量的变化会引起连锁反应 如何设置绑定 slider控制以文字显示为例 首先找到要控制哪个节点的哪个属性,比如要控制text的Text属性,就可以在text节点 ...

  2. Kanzi常用操作3

    十.如何添加动画 首先选择节点,添加一个animation player 然后选中创建出来的动画片段并双击 之后会弹出一个坐标系 将想要控制的属性拖入该坐标系的左侧栏 坐标系中的手掌图标负责拖动坐标系 ...

  3. Kanzi常用操作1

    1.如何让球体不走样 将摄像机的参数FOV调整小一些,原理见计算机图形学笔记 2.如何添加整个工程的背景 直接在视口上面加一个图片即可 3.如何修改2D字体的颜色?? 2D字体实际是一张图片,前景是字 ...

  4. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

  5. Ubuntu 常用操作

    Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...

  6. IOS沙盒Files目录说明和常用操作

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  7. 用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  8. 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 ...

  9. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

最新文章

  1. 2435: [Noi2011]道路修建
  2. Linux du命令和df命令区别
  3. 进程间通信(1) dll 实现进程的内存共享
  4. AD管控下的弹性云桌面和文件共享最佳实践
  5. android gradle build process
  6. Pandas将列表(List)转换为数据框(Dataframe)
  7. Java中文件路径的写法
  8. Linux 各类软件整理汇总
  9. c语言如何遍历数组,C语言数组遍历
  10. erp系统与mes集成:制造业信息化发展中必不可少的阶段
  11. unreal歌曲百度云下载_Unreal_Engine_4_1
  12. monitorServer IBM Tivoli Enterprise Monitor Server
  13. exsi rh2288hv5 驱动_华为RH2288H服务器引导ServiceCD安装Windows Server操作系统
  14. win10 无法访问samba文件,提示SMB1是不安全协议解决方案
  15. 知识图谱学习(一)(笔记整理)
  16. 第四范式业界首推免费智能客服服务
  17. Codeforces Round #617 (Div. 3)
  18. 通过形状先验引导的3D目标检测方法(Disp R-CNN解读)
  19. 网站、网页的自身优化--(如何让网站被搜索引擎搜索到)
  20. php框架 s,开源免费的PHP框架|轻量级PHP框架(DecSoft's Humm PHP)下载 V2019.4 官方版 - 比克尔下载...

热门文章

  1. Qt 实现PC端网易云音乐界面
  2. Win11电脑速度慢、延迟高怎么办?
  3. Java毕业设计-社区疫情管理小程序
  4. PCL中的OpenNI采集卡框架(The OpenNI Grabber Framework in PCL)
  5. 小车PWM调速-模式选择
  6. 学习笔记——深蓝学院点云系列公开课05:3D物体检测的发展与未来
  7. 计算机语言学大学排名,法国语言学专业大学排名(2020年QS)_快飞留学
  8. OpenCv算法的基本介绍与应用
  9. 垃圾收集概述和垃圾收集算法(超详细介绍)
  10. HTTP请求/响应报文结构