彩虹模拟时钟

该示例通过图形显示和动画效果来创建一个“彩虹模拟时钟”的场景。该应用程序集成了 Box2D 物理引擎,用于模拟胶囊物体在圆环上的运动。这些胶囊根据用户的交互和设定的物理规则进行动态移动和碰撞模拟,营造出丰富、动感的视觉体验。



核心功能

模拟时钟显示

  • 显示一个模拟时钟,带有显示小时、分、秒的指针,这些指针会随着系统时间的变化实时更新其位置。

  • 时钟的指针使用矢量图形绘制,且颜色根据与胶囊的互动效果动态变化。

胶囊动画

  • 不同颜色和图像的胶囊沿圆形路径旋转运动,营造出充满活力的动画效果。

  • 每个胶囊面向圆心移动,并添加了随机角度偏移,增加了运动的随机性和真实感。

  • 用户可以通过点击交互来对胶囊施加外部力量,触发视觉爆炸效果。

用户交互

  • 用户点击屏幕上的特定位置,触发离开点一定半径范围内的胶囊产生向外的弹射效果。

  • 在经历了与用户的互动后,胶囊会慢慢恢复到其原始路径。

物理引擎集成

  • 应用中使用了 Box2D 来进行动态物理模拟,处理胶囊的旋转和移动。

实现

代码

函数 static void app_rainbow_analog_ui_design(gui_view_t *view) 位于文件 example/application/screen_410_502/app_box2d_rainbow_analog.cpp