// Dax Phyz PhyzLizp script file. // Visit http://phyz.ath.cx for more information. (seq (if (PzFindPhyz) (let ((wheelRockets '(0 1)) (inclSprings '(1 2)) (fireRockets '(2 3))) (define (fire) (foreach (lambda (r) (PzSetRocketForce r 575)) fireRockets) (sleep 0.7) (foreach (lambda (r) (PzSetRocketForce r -600)) fireRockets) (sleep 0.55) (foreach (lambda (r) (PzSetRocketForce r 0)) fireRockets) ) (define len nil) (define wheels nil) (define firing nil) (while (iswindow PHYZ) (if (PzGetPhysics) (seq (if (not len) (setq len (PzGetSpringCurLen (car inclSprings)))) (if (and firing (> (- (clock) firing) 1)) (setq firing nil)) (if (and (not firing) (keystate (vkcode 'VK_RETURN))) (seq (display "*** FIRE%0d%0a") (fire) (setq firing (clock)) ) ) (if (keystate (vkcode 'VK_UP)) (seq (display "*** UP%0d%0a") (setq len (min 80 (+ len 1))) (foreach (lambda (s) (PzSetSpringLen s len)) inclSprings) ) ) (if (keystate (vkcode 'VK_DOWN)) (seq (display "*** DOWN%0d%0a") (setq len (max 20 (- len 1))) (foreach (lambda (s) (PzSetSpringLen s len)) inclSprings) ) ) (cond ((keystate (vkcode 'VK_LEFT)) (if (not (eq wheels 'left)) (seq (display "*** LEFT%0d%0a") (foreach (lambda (r) (PzSetRocketForce r 600)) wheelRockets) (setq wheels 'left) ) ) ) ((keystate (vkcode 'VK_RIGHT)) (if (not (eq wheels 'right)) (seq (display "*** RIGHT%0d%0a") (foreach (lambda (r) (PzSetRocketForce r -600)) wheelRockets) (setq wheels 'right) ) ) ) (wheels (display "*** STOP%0d%0a") (foreach (lambda (r) (PzSetRocketForce r 0)) wheelRockets) (setq wheels nil) ) ) ) (seq (setq len nil) (if wheels (seq (display "*** STOP%0d%0a") (foreach (lambda (r) (PzSetRocketForce r 0)) wheelRockets) (setq wheels nil) ) ) ) ) (sleep 0.1) ) ) (exception "Phyz window not found!") ) )