Lisp Advent Calendar 一日目

ʕ•͡ω•ʔ 例によってネタがないよな

( ´∀`) SDL のことでもやる?

;; sdl-sample.scm
(use-modules (srfi srfi-1)
             (srfi srfi-2)
             ((sdl sdl) #:prefix SDL:)
             ((sdl gfx) #:prefix SDL_gfx:))

(define screen-width       640)

(define screen-height      480)

(define screen-bpp          32)

(define delay-milliseconds  10)

(define screen)

(define (init-video)
  (SDL:init 'video)
  (set! screen (SDL:set-video-mode screen-width
                                   screen-height
                                   screen-bpp))
  (SDL:set-caption "Guile SDL Demo"))

(define (draw)
  (let ((x      (random screen-width))
        (y      (random screen-height))
        (radius (random 100))
        (color  (random #xffffffff)))
    ;; (SDL:fill-color screen x y radius color)
    (SDL_gfx:draw-circle screen x y radius color #t)
    (SDL:flip)))

(init-video)

(let loop ((ev (SDL:make-event)))
  (if (SDL:poll-event ev)
      (case (SDL:event:type ev)
        ((quit)
         (SDL:quit)
         (quit)))
      (begin
        (draw)
        (SDL:delay delay-milliseconds)))
  (loop ev))

(*゚∀゚) guile は当然必要として、その他に guile-sdlsdlsdl-gfx とかが必要だぞ!

% guile ./sdl-sample.scm

( ´∀`) SDL_gfx:draw-aa-circlefill っていう引数に何を入れれば良いのかわからなかった

ʕ•͡ω•ʔ だから、寂しい感じになってるな…

( ´∀`) と思ったんだけど、SDL_gfx:draw-circle にはあることを発見したのでそっちに直したよ

ʕ•͡ω•ʔ 感じ、感じ