The very beginning of my forever game project, starting as a "simple" roguelike.

forever-game-roguelike.lisp 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. ;;;; forever-game-roguelike.lisp
  2. (in-package #:forever-game-roguelike)
  3. (defun start ()
  4. (sdl2:with-init (:everything)
  5. (sdl2:with-window (win :flags '(:shown :opengl))
  6. (sdl2:with-gl-context (gl-context win)
  7. (let ((controllers ())
  8. (haptic ()))
  9. (sdl2:gl-make-current win gl-context)
  10. (gl:viewport 0 0 800 600)
  11. (gl:matrix-mode :projection)
  12. (gl:ortho -2 2 -2 2 -2 2)
  13. (gl:matrix-mode :modelview)
  14. (gl:load-identity)
  15. (gl:clear-color 0.0 0.0 1.0 1.0)
  16. (gl:clear :color-buffer)
  17. (sdl2:with-event-loop (:method :poll)
  18. (:idle
  19. ()
  20. (gl:clear :color-buffer)
  21. (gl:begin :triangles)
  22. (gl:color 1.0 0.0 0.0)
  23. (gl:vertex 0.0 1.0)
  24. (gl:vertex -1.0 -1.0)
  25. (gl:vertex 1.0 -1.0)
  26. (gl:end)
  27. (gl:flush)
  28. (sdl2:gl-swap-window win))
  29. (:keyup
  30. (:keysym keysym)
  31. (when (sdl2:scancode= (sdl2:scancode-value keysym) :scancode-escape)
  32. (sdl2:push-event :quit)))
  33. (:quit () t)))))))