Common Lispでゲーム作成
version | date | memo |
---|---|---|
0.1 | 2013/08/13 | first |
はじめに
以下のPDFを参考にしたが、Linux上での環境構築方法が載っていなかったので、自分でやってみた。
下記リンクのCommon Lispの項の冊子(PDF)を参照。
***でSTGを作りますが何か?:いで庵
DL
# UbunutuのパッケージからDL
sudo apt-get install sbcl
sudo apt-get install cl-cffi
sudo apt-get install cl-alexandria
sudo apt-get install cl-babel
sudo apt-get install cl-trivial-features
Lispbuilder-SDL関連のDL
下記リンクからDL
GitHub - lispbuilder/lispbuilder: Lispbuilder provides a range of libraries for developing useful portable Common Lisp applications
win32系は要らない。
よって、以下の5つをDL
- lispbuilder-sdl-ttf-0.3.0.tgz
- lispbuilder-sdl-mixer-0.4.tgz
- lispbuilder-sdl-image-0.5.0.tgz
- lispbuilder-sdl-gfx-0.7.0.tgz
- lispbuilder-sdl-0.9.8.1.tgz
解凍後、/usr/lib/sbcl/site-systems/直下に移動
(require :asdf) (require :babel) (require :alexandria) (require :trivial-features) (require :cffi) (dolist (dir (directory "/usr/lib/sbcl/site-sysmtems/")) (pushnew dir asdf:*central-registry* :test #'equal)) (asdf:operate 'asdf:load-op :lispbuilder-sdl) (asdf:operate 'asdf:load-op :lispbuilder-sdl-binaries)
(〒) < やたらWarningが出るのは、どうにかならんのかなぁ?
これで、
(asdf:operate 'asdf:load-op :lispbuilder-sdl-examples) (sdl-examples:mandelbrot)
気がついたこと
p30ぐらい
ここのソースにフォントの初期化コードが無い。
この初期化コードが無いと、「6.4 成仏させる」項目の箇所で痛い目を見る。
下記が起きる現象で、適用可能な「draw-string-solid-*」関数が無いとか言われる。
;;;;;; p34〜 ;; ---------------------------------------------------------------------- debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING {B3ECA31}>: There is no applicable method for the generic function #<STANDARD-GENERIC-FUNCTION LISPBUILDER-SDL::_DRAW-STRING-SOLID-*_ (1)> when called with arguments ("10" 500 400 :LEFT #<LISPBUILDER-SDL::DISPLAY {CDF2CB9}> NIL #<LISPBUILDER-SDL:COLOR {940A761}>). Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [RETRY] Retry calling the generic function. 1: [ABORT] Exit debugger, returning to top level. ((SB-PCL::FAST-METHOD NO-APPLICABLE-METHOD (T)) #<unused argument> #<unused argument> #<STANDARD-GENERIC-FUNCTION LISPBUILDER-SDL::_DRAW-STRING-SOLID-*_ (1)> "10" 500 400 :LEFT #<LISPBUILDER-SDL::DISPLAY {CDF2CB9}> NIL #<LISPBUILDER-SDL:COLOR {940A761}>) ;; ----------------------------------------------------------------------
解決方法
(defun main () (sdl:with-init () (sdl:window 640 480 :title-caption "てすと") ;;; この一行を追加(下) (sdl:initialise-default-font sdl:*font-10x20*) ; フォント初期化 (let* ((current-・・・