如何在 kitten 里生成动态个数个立方体(水平方向平铺)以及避免闪烁问题
如何 以及 生成 动态 避免 个数 方向 水平
2023-09-14 09:13:40 时间
效果如下: 一个立方体:
两个立方体:
三个立方体:
实现思路
关键是求出第一个立方体开始绘制的第一个点的水平方向坐标。
我引入三个变量,分别是立方体的个数,第一个立方体的顶点水平方向坐标和第二个及其之后的顶点水平方向坐标。
我期望将这些立方体尽可能布局在屏幕的正中,因此需要计算第一个立方体的初始顶点的水平坐标。后续的立方体定点坐标,只需在此基础上递增正方体的边长即可。换言之,这些立方体从左到右依次布局。
正方形变长 × 立方体个数的和再除以2,除以2保证第一个顶点在屏幕正中。
然后在循环体里绘制立方体。每绘制一次之后,将立方体定点水平坐标往右增加正方形边长的偏移量,然后将画笔抬至新的 x 坐标。
Kitten 里如何解决动态绘制立方体后出现的闪烁问题
问题:
如果有三个立方体,则第二个和第三个,在响应用户事件重新绘制时,会出现 flicker 即闪烁问题。
如果将初始的立方体个数硬编码为2:
仍然会出现闪烁问题。
如果不加这个延时积木,第二个及其以后的立方体会频繁闪烁。如果加上,降低了闪烁的频率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TTZrOwCT-1675757941682)(null)]
感觉第二个立方体的绘制有延迟,和第一个立方体一样不是立即完成的。难道第一个立方体没有清除掉?
时延加到 0.5秒就比较明显了。每次事件响应,第一个立方体总是立即出现,然后才是第二个立方体刷的一下出来。
我把循环体内的积木展开,发现没有任何闪烁问题,所以问题出现在循环积木本身。
最后的解决方案,将第一个立方体的绘制同其后立方体的绘制拆分开。后者放在循环体内。问题解决:
相关文章
- EasyNVR无插件直播服务如何配合EasyBMS使用以及实现流媒体管理功能概述
- 大数据如何贡献大价值
- windows 7 下如何搭建FTP服务器
- 如何自动完成登录 SAP BTP workflow(工作流) 管理应用 Launchpad 所需的设置
- 如何查找Fiori UI上某个字段对应的后台存储表的名称
- SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值试读版
- 如何在backoffice里创建Hybris image container以及分配给product
- SAP BTP Kyma Runtime dashboard 打开报缺少缺陷的错误消息该如何解决
- Angular 如何自定义 pipe 管道以及参数传递问题
- 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?
- 【ML】了解 LightGBM 参数(以及如何调整)
- Innodb中mysql如何快速删除2T的大表
- 个人总结如何在项目管理的实际软件开发工作的几个关键点和控制
- 【SQL开发实战技巧】系列(三十八):数仓报表场景☞拆分字符串进行连接以及如何对Clob字段比较一致性
- 【SQL开发实战技巧】系列(二十):数据仓库中时间类型操作(进阶)获取季度开始结束时间以及如何统计非连续性时间的数据
- Django如何实现点赞、收藏以及浏览量增减
- 【vue】如何安装vue 脚手架以及创建脚手架项目_10
- 【项目实战】Protobuf入门介绍以及如何生成proto对象文件
- 【全局唯一id】分库分表之后,id 主键如何处理?
- 消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ?
- 苹果手机如何远程控制华为安卓平板电脑