diff options
| author | Gene Pasquet <dev@etenil.net> | 2025-06-20 21:09:37 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2025-06-20 21:09:37 +0100 |
| commit | 4e88ef4a3fcf641afe7580d7810302e4ba44e740 (patch) | |
| tree | a8fb478a6c869c4e7721e5a2597adabf2b68dc23 | |
| parent | 7cd219920f1bee8fb7ba24e83dd6a0c6a73e1512 (diff) | |
Started game conversion to Chicken Scheme
| -rw-r--r-- | DejaVuSans.ttf | bin | 0 -> 741536 bytes | |||
| -rw-r--r-- | src/game.scm | 51 |
2 files changed, 51 insertions, 0 deletions
diff --git a/DejaVuSans.ttf b/DejaVuSans.ttf Binary files differnew file mode 100644 index 0000000..9d40c32 --- /dev/null +++ b/DejaVuSans.ttf diff --git a/src/game.scm b/src/game.scm new file mode 100644 index 0000000..ad4f800 --- /dev/null +++ b/src/game.scm @@ -0,0 +1,51 @@ +(import scheme + (chicken format) + (chicken process-context) + (chicken condition) + (prefix sdl2 "sdl2:") + (prefix sdl2-ttf "ttf:") + (prefix sdl2-image "img:")) + +(define +color-depth+ 32) +(define +screen-width+ 600) +(define +screen-height+ 400) +(define *fullscreen?* #f) +(define +background-color+ (sdl2:make-color 0 0 0)) +(define +software-mode?+ (member "-software" (command-line-arguments))) +(define +vsync?+ (member "-vsync" (command-line-arguments))) + +(sdl2:set-main-ready!) +(sdl2:init! '(video)) +(ttf:init!) +(img:init! '(png)) + +(on-exit sdl2:quit!) + +;; Install a custom exception handler that will call quit! and then +;; call the original exception handler. This ensures that quit! will +;; be called even if an unhandled exception reaches the top level. +(current-exception-handler + (let ((original-handler (current-exception-handler))) + (lambda (exception) + (sdl2:quit!) + (original-handler exception)))) + +(if (and +vsync?+ (not +software-mode?+)) ; vsync doesn't work with software rendering + (sdl2:set-hint! 'render-vsync "1")) +(define *window* (sdl2:create-window! "Magnetic Trek" + 'centered 'centered + +screen-width+ +screen-height+ + (if *fullscreen?* '(fullscreen) '()))) +(define *renderer* (sdl2:create-renderer! *window* -1 + (if +software-mode?+ '(software) '(accelerated)))) + +(define *font* (ttf:open-font "DejaVuSans.ttf" 12)) +(define *text-color* (sdl2:make-color 255 255 255)) + +(set! (sdl2:render-draw-color *renderer*) +background-color+) +(sdl2:render-clear! *renderer*) + +(format #t "chicken env: ~a" (get-environment-variable "CHICKEN_ENV")) + +(format #t "hello world") + |
