浅析在kanzi中使用代码控制Trajectory List Box 3D节点旋转
背景
在逐渐丰富的仪表需求中,越来越多的个性化表盘开发需求逐渐增加。一个奇怪的需求就来了,有个产品就想用代码实现下面这种效果,咱也不知道他是咋想的。咱也不敢说咱也不敢问。
软件版本
软件名 | 版本号 |
---|---|
Kanzi | 3.9.4 |
Visual Studio | 2017 |
0X000 KANZI官方插件文档
在kanzi的文档中,说明这个节点下可以使用的方法。API文档当然不用我多说,就是查就完事了。
kanzi官方文档链接 https://docs.kanzi.com/3.9.4/en/reference/kanzi-runtime-api/a10977.html
0X003 kanzi工程中建立节点
首先可以在我们的工程入建立如下节点做为测试使用。
为了方便写代码我们在Screen中建立一个 别名
然后就导出我们的KZB文件即可。
0X002 进入Application.cpp文件
为了方便我就在我们的onUpdate函数中去写我们的例子。
//该函数为kanzi每一次渲染的时候都会调用
virtual void onUpdate(chrono::nanoseconds deltaTime) override
{
//获取我们的Screen节点
ScreenSharedPtr screen = getScreen();
//在Screen节点下取出我们建立的Trajectory List Box 3D节点
TrajectoryListBox3DSharedPtr listBox = screen->lookupNode<TrajectoryListBox3D>("#Trajectory List Box 3D");
//建立一个 Vector2 类型的变量
Vector2 index;
//将变量的X设置为一个值
index.setX(-5.004635);
//最后调用函数设置Trajectory List Box 3D的X的值
listBox->setScrollPosition(index);
}
0X004 上香
这里你要点上几根香,心中默念祖师爷万岁!
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/
0X005 看效果
0X006 原本的效果
注释 listBox->setScrollPosition(index); 后再次运行
0X007 结束语
目前本人博客写的还很少,如果大家有那些建议可以发邮件给我。我会接受大家的建议。如果你有关于kanzi的问题也欢迎一起讨论。如果本文对你有帮助也欢迎点点赞。
个人邮箱:377644012@qq.com
PS:如果你有想要的代码段也可以告诉我没准下一次就更新你的代码段了。