(use-modules (ice-9 format)) (load "helper.scm") (define (*key-down-handler* key) (display "Keydown: ") (display key) (newline) (cond ((string=? key "i") (game-add-igel (+ (player-get-x) 0) (- (player-get-y) 300))) ((string=? key "s") (windstille:repl)) ((string=? key "p") (toggle-pause)) ((string=? key "d") (dialog-show)) ((string=? key "1") (set-game-speed 1.0)) ((string=? key "2") (set-game-speed 2.0)) ((string=? key "3") (set-game-speed .5)) ((string=? key "4") (set-game-speed .25)) ((string=? key "5") (set-game-speed .1)) ((string=? key "h") (dialog-hide)) )) (define (*mouse-up-handler* x y) #f) (define (*mouse-down-handler* x y) (display (inexact->exact x)) (display " ") (display (inexact->exact y)) (newline) (cond (#t (player-set-pos x y)) (else (display "(game-add-igel ") (display (inexact->exact x)) (display " ") (display (inexact->exact y)) (display ")") (game-add-igel (inexact->exact x) (inexact->exact y)) (newline)))) (define (toggle-pause) (game-set-pause (not (game-get-pause)))) (define (game-get-time-str) (let* ((t (inexact->exact (game-get-time))) (minutes (quotient t 60)) (seconds (remainder t 60))) (string-append (number->string minutes) ":" (if (< seconds 10) "0" "") (number->string seconds)))) ;(define save-player-position #f) ; (let ((x 10) ; (y 45) ; (buttons '()) ; (window (gui-create-window 20 20 300 200 "Position Save GUI"))) ; (gui-push-component (gui-window-get-client-area window)) ; (gui-create-button-func 10 10 100 25 "Save Position" ; (lambda () (save-player-position (inexact->exact (player-get-pos-x)) ; (inexact->exact (player-get-pos-y))))) ; (gui-create-button-func 115 10 100 25 "Clear" ; (lambda () ; (for-each gui-remove-component buttons) ; (set! buttons '()) ; (set! x 10) ; (set! y 45))) ; (gui-pop-component) ; (set! save-player-position ; (lambda (player-x player-y) ; (gui-push-component (gui-window-get-client-area window)) ; (set! buttons ; (cons (gui-create-button-func x y 70 25 (format #f "~d, ~d" player-x player-y) ; (lambda () ; (player-set-pos player-x player-y))) ; buttons)) ; (set! x (+ x 75)) ; (cond ((> x 220) ; (set! y (+ y 30)) ; (set! x 10))) ; (gui-pop-component)))) ;(save-player-position 258 607) ;(save-player-position 3989 703) ;(save-player-position 7635 3391) ;(save-player-position 969 3263) ; (let ((window (gui-create-window 20 320 310 100 "Eval Scheme"))) ; (gui-push-component (gui-window-get-client-area window)) ; (let ((input (gui-create-inputbox 10 10 240 30 "")) ; (button (gui-create-button 255 10 50 25 "eval"))) ; (gui-component-on-click button ; (lambda () ; (catch #t ; (lambda () ; (eval-string (gui-inputbox-get-text input))) ; (lambda err ; (display "Error: ")(display err)(newline)))))) ; (gui-pop-component)) ; (gui-create-button-func 0 0 100 25 "Hide Debug GUI" ; (lambda () (gui-hide))) ; ;; Default to non-debug mode ; (gui-hide) ;; (define array ;; (let ((data '(1 2 3 4 5))) ;; (make-procedure-with-setter ;; (lambda (i) ;; (list-ref data i)) ;; (lambda (i val) ;; (list-set! data i val)) ;; ))) ;; EOF ;;