Small Logo

Swiss Railway Clock Demo

# Swiss clock scene - see end for credits

canvas width 800
canvas height 600

setup
    load /assets/backgrounds/station-platform.png as platform
    put platform as background
    prepare swiss-clock


begin
    run swiss-clock  188 263 83 40  // size, x, y, darkness


scene swiss-clock
    setup
        # Create group for the clock
        group create clock
        # get our local assets 
        sprite create face load from /demo/swiss-clock/swiss-railway-clock.png 
        sprite create secondhand load from /demo/swiss-clock/second-hand.png
        sprite create hourhand load from /demo/swiss-clock/hour-hand.png
        sprite create minutehand load from /demo/swiss-clock/minute-hand.png
        # Initial sprite placement
        place face in group clock at origin size 200 200 depth 200
        place minutehand in group clock at origin depth 201
        place hourhand in group clock at origin depth 202
        place secondhand in group clock at origin depth 203

    begin
        # Pick up the parameters passed in to us
        assign size xpos ypos darkness as $PARAMETERS
        # Clock is ready, now position it
        place clock at $xpos $ypos depth 300
        darken clock to $darkness
        # Now set the current time
        rotate secondhand to ($SECONDS * 6)
        rotate minutehand to ($MINUTES * 6)
        rotate hourhand to ((($HOURS Mod 12) * 30) + ($MINUTES/2))

    each **:**:00
        # move both hands
        rotate minutehand to ($MINUTES * 6)
        rotate hourhand to ((($HOURS Mod 12) * 30) + ($MINUTES/2))

    every 1 second
        rotate secondhand to ($SECONDS * 6)

after 1 seconds // give time to load
 resize clock $size $size
end scene

notes
    Station platform generated by Canva AI / Affinity App
    Clock face from https://commons.wikimedia.org/wiki/File:Swiss_railway_clock_1.svg
    Call from URL /demo/swiss-clock/swiss-clock.txt
    The scene swiss-clock can be reused as required
endnotes