MultiClock is a screensaver for macOS that displays the current time using 24 clocks. MultiClock is very configurable, with a variety of hand and dial styles and the ability to customize the color of each independently.
Note: This gif has a low framerate. The screensaver itself operates at a fluid 60 FPS.
What about 24-hour time support?
If you have macOS set to 24-hour time, the screensaver will automatically use 24-hour time as well. (Well, it’s supposed to, anyway…)
- Clone the repo
- The ‘macOS’ build target allows you to preview the screensaver and control it manually. Take a look at the bottom of
ClockScene.swiftto see some keyboard shortcuts. Add your own to test out animations!
If you’d like to add animations to ClockSaver, the public methods on the
Animation class make it easy–they’re very similar to SKActions. For example, a sequence of animations may look like this:
queue(animations: [ Animation.display(pattern: inwardPointPattern), Animation.wait(duration: 5), Animation.positionBothHands(minuteDegrees: -45, hourDegrees: -225), Animation.spinBothHandsWithDelay(by: 180, delay: 0.2), Animation.currentTimeClock(), Animation.wait(duration: 5), Animation.positionBothHands(minuteDegrees: -225, hourDegrees: -225), Animation.positionBothHands(minuteDegrees: 0, hourDegrees: 0), Animation.currentTimePrint(), ])
Completed animations should go in
ClockController.swift. Bump up the
Int.random() call and add a new
case to the
switch. Then submit a PR if you think the animation is cool ?
Why are all the degree references in negative? Because I’m too lazy to go back and make them positive after reworking the animation system. Submit a PR fixing it, if you want!
- Brad Root – amiantos