成果如下: 一个立方体:
两个立方体:
三个立方体:
实现思路
要害是求出第一个立方体开始绘制的第一个点的程度方向坐标。
我引入三个变量,别离是立方体的个数,第一个立方体的顶点程度方向坐标和第二个及其之后的顶点程度方向坐标。
我冀望将这些立方体尽可能布局在屏幕的正中,因而须要计算第一个立方体的初始顶点的程度坐标。后续的立方体定点坐标,只需在此基础上递增正方体的边长即可。换言之,这些立方体从左到右顺次布局。
正方形变长 × 立方体个数的和再除以 2,除以 2 保障第一个顶点在屏幕正中。
而后在循环体里绘制立方体。每绘制一次之后,将立方体定点程度坐标往右减少正方形边长的偏移量,而后将画笔抬至新的 x 坐标。
Kitten 里如何解决动静绘制立方体后呈现的闪动问题
问题:
如果有三个立方体,则第二个和第三个,在响应用户事件从新绘制时,会呈现 flicker 即闪动问题。
如果将初始的立方体个数硬编码为 2:
依然会呈现闪动问题。
如果不加这个延时积木,第二个及其当前的立方体会频繁闪动。如果加上,升高了闪动的频率。
[外链图片转存失败, 源站可能有防盗链机制, 倡议将图片保留下来间接上传 (img-TTZrOwCT-1675757941682)(null)]
感觉第二个立方体的绘制有提早,和第一个立方体一样不是立刻实现的。难道第一个立方体没有革除掉?
时延加到 0.5 秒就比拟显著了。每次事件响应,第一个立方体总是立刻呈现,而后才是第二个立方体刷的一下进去。
我把循环体内的积木开展,发现没有任何闪动问题,所以问题呈现在循环积木自身。
最初的解决方案,将第一个立方体的绘制同其后立方体的绘制拆离开。后者放在循环体内。问题解决: