首页 > 解决方案 > 如何在 Apple Watch 上制作矢量图形动画?

问题描述

由于当今大多数设备都有 CPU 和 GPU,因此对于希望制作动画矢量图形(如使圆圈变大或四处移动)的程序员的通常建议是定义图形项目一次,然后使用线性变换对其进行动画处理。这样,(在大多数平台和框架上)GPU 可以完成动画工作,因为使用线性变换的光栅化可以在 GPU 上非常快速地完成。如果程序员选择在 CPU 上绘制每一帧,它很可能会慢得多并且消耗更多的能量。

我知道 Watch 不是您想要使用复杂动画重载的设备,但至少主屏幕似乎确实使用了这种动画线性变换:

在此处输入图像描述

此外,大多数表盘都以某种方式进行动画处理,例如移动的秒针和分针。

但是,WatchKit 控件没有属性,我在文档.transform中找不到太多内容——那里甚至没有提到“动画”和“图形”这两个词。

因此,我目前看到的唯一方法是将矢量图形绘制到 aCGContext然后将结果作为图像控件放入图像控件,如此UIImage所述。但这似乎并不真正节能。这正是我们通常希望尽可能避免的那种“CPU 像素绘图”。我认为它不节能,因为如果我在 100x100 像素的图像缓冲区上绘制,图像必须缩放到实际的 Watch 屏幕尺寸,所以我们每帧有两个实际的绘制过程。

是否有官方推荐的节能方式在 Apple Watch 上制作动画?

或者,换句话说,我们可以像在主屏幕或表盘上动画一样制作动画吗?

标签: animationwatchkitapple-watch

解决方案


似乎 SpriteKit 是答案。您可以创建SKScene和节点对象,然后将它们显示在WKInterfaceSKScene.


推荐阅读