racket/collects/frtime/demos/push-pull-ball.ss
Greg Cooper 0e3a5f01df - new and improved model for conditionals based on "super-lift"
- added quasiquote
- made structures memory-efficient
- removed "non-scheduled" dependencies
- split into several modules

svn: r420
2005-07-21 18:06:23 +00:00

36 lines
1.1 KiB
Scheme

(module push-pull-ball (lib "frtime.ss" "frtime")
(require (lib "etc.ss" "frtime")
(lib "animation.ss" "frtime"))
(define radius (new-cell 20))
(define pos1
(rec pos
(until (make-posn 200 200)
(delay-by
(let ([brnch (posn+ pos
(posn* (normalize (posn- mouse-pos pos))
(- (posn-diff pos mouse-pos) (sub1 radius))))])
(if (> (posn-diff pos mouse-pos) radius)
brnch
pos))
0))))
(define pos2
(rec pos
(until (make-posn 100 100)
(delay-by
(let ([brnch (posn+ pos
(posn* (normalize (posn- pos1 pos))
(- (posn-diff pos pos1) (add1 (* 2 radius)))))])
(if (< (posn-diff pos pos1) (* 2 radius))
brnch
pos))
0))))
(display-shapes
(list
(make-circle pos1 radius "blue")
(make-circle pos2 radius "blue"))))