#lang racket (require "libtcod.rkt") (define (handle-keys) (call/cc (lambda (k) (let* ([key (tcod:console-wait-for-keypress #t)] [vk (tcod:key-vk key)] [char (integer->char (tcod:key-c key))]) (cond [(and (eq? 'key-enter vk) (tcod:key-left-alt key)) (tcod:console-set-fullscreen (not (tcod:console-is-fullscreen?))) (k #f)] [(or (eq? 'key-escape vk) (and (eq? 'key-char vk) (eq? char #\Q) (tcod:key-left-ctrl key))) (k #t)]) ; shortcut #f)))) (define (main-loop) (tcod:console-set-custom-font "data/fonts/prestige12x12_gs_tc.png" 12 -1 -1) (tcod:console-init-root 30 24 "scheme/libtcod tutorial" #f 'glsl) (tcod:sys-set-fps 20) (let* ([foo 1]) (let loop ([first #t]) (unless (tcod:console-is-window-closed?) (when first (tcod:console-flush)) (let ([break [and (not first) (handle-keys)]]) (unless break (tcod:console-flush) (loop #f))))))) (main-loop)