Lisp Game Programming 2 <Stage 2>
参考にさせていただいたサイトのリストを見たところ、キャラクタのidをリストにしていた。
これを参考に、先のプログラムで読み込んだid番号と比べてみたらこんなmap用のプログラムができた。
3面のmapを以下に用意したけど、スクロールの仕方はこんな感じ。
1.スタートの時はマップの一番上は64のライン、一番下は71のライン
2.次は上が63のラインで下が70のラインというように1ラインづつ動いていく
3.64のラインから63のラインに行くとき、64×64の大きさのmapchipのため、1dotずつ移動していく
map-list.lisp ⇒
(defpackage :map-list
(:use :common-lisp)
(:export #:*map1 #:*map2* #:*map3*))
(in-package :map-list)
;; step2 <Map>
;; -----------------------------------------------------------------------------------------------
(defparameter *map1* (make-array '(72 5) :initial-contents
'((54 61 61 61 54) ; 0
(54 61 62 61 54)
(54 61 61 61 54)
(54 62 61 62 54)
(54 61 61 61 54)
(54 61 62 61 54)
(54 61 61 61 54)
(54 62 62 62 54)
(54 61 61 61 54)
(54 63 63 63 54)
(54 58 60 59 54) ; 10
(56 58 60 59 56)
(55 58 60 59 55)
(54 58 60 59 54)
(54 57 57 57 54)
(54 58 57 59 54)
(54 57 57 57 54)
(54 58 57 59 54)
(54 57 57 57 54)
(54 58 57 59 54)
(54 57 57 57 54) ; 20
(56 58 60 59 56)
(55 58 60 59 55)
(54 58 60 59 54)
(54 57 60 57 54)
(54 58 60 59 54)
(54 58 57 59 54)
(54 58 60 59 54)
(54 57 60 57 54)
(54 58 60 59 54)
(54 58 57 59 54) ; 30
(56 58 60 59 56)
(55 58 60 59 55)
(54 58 60 59 54)
(54 57 60 57 54)
(54 58 60 59 54)
(54 57 60 57 54)
(54 58 60 59 54)
(54 57 60 57 54)
(54 58 60 59 54)
(54 57 60 57 54) ; 40
(56 58 60 59 56)
(55 58 60 59 55)
(54 57 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 57 54) ; 50
(56 58 60 59 56)
(55 58 60 59 55)
(54 58 57 57 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 58 57 59 54)
(54 57 57 59 54) ; 60
(56 58 60 59 56)
(55 58 60 59 55)
(54 58 60 59 54)
(54 58 57 59 54) ; 64 <-- start line
(54 58 60 59 54)
(54 58 57 59 54)
(54 58 60 59 54)
(54 58 57 59 54)
(54 58 60 59 54)
(54 58 57 59 54) ; 70
(56 58 60 59 56))))
(defparameter *map2* (make-array '(72 5) :initial-contents
'((28 29 28 27 29) ; 0
(35 36 27 35 36)
(27 28 27 29 27)
(35 36 28 35 36)
(28 27 29 28 27)
(35 36 28 35 36)
(27 28 27 29 29)
(35 36 29 35 36)
(28 27 29 27 28)
(27 29 28 28 27)
(27 28 27 29 27) ; 10
(29 27 29 28 27)
(28 29 28 27 29)
(29 28 27 29 30)
(28 29 28 29 27)
(29 28 27 29 28)
(27 28 29 28 29)
(28 35 36 29 27)
(27 29 29 27 28)
(29 28 27 28 29)
(28 28 27 29 27) ; 20
(27 29 32 27 28)
(29 28 29 27 28)
(27 28 29 28 29)
(28 27 29 27 29)
(27 29 28 31 27)
(27 28 29 27 29)
(28 27 29 27 28)
(29 27 28 28 29)
(27 28 27 29 35)
(28 29 27 28 27) ; 30
(29 27 28 27 29)
(27 28 29 28 27)
(28 27 28 27 29)
(27 29 29 28 27)
(29 33 34 29 28)
(28 27 29 28 29)
(27 29 28 29 27)
(27 28 29 27 28)
(29 27 28 35 36)
(28 27 28 29 27) ; 40
(29 28 27 28 27)
(28 29 27 29 28)
(27 28 29 32 27)
(28 29 27 28 29)
(27 29 28 27 28)
(28 28 29 27 29)
(27 29 28 29 27)
(27 28 29 27 28)
(28 29 28 29 27)
(36 28 29 28 27) ; 50
(28 29 27 27 29)
(29 27 33 34 28)
(28 29 27 28 27)
(29 31 28 29 27)
(27 28 29 28 29)
(28 29 28 29 27)
(29 27 28 27 28)
(27 35 36 28 29)
(28 27 28 29 27)
(27 28 27 28 29) ; 60
(28 29 28 29 27)
(27 28 29 27 28)
(28 29 28 27 29)
(28 27 29 28 27) ; 64 <-- start line
(29 28 27 30 29)
(27 29 28 27 28)
(28 27 29 28 29)
(29 28 27 29 27)
(28 27 29 28 27)
(27 29 28 29 28) ; 70
(28 27 29 28 27))))
(defparameter *map3* (make-array '(72 5) :initial-contents
'((44 45 44 43 45) ; 0
(43 44 43 45 44)
(43 44 43 45 43)
(45 43 44 43 45)
(44 43 45 44 43)
(45 43 44 45 43)
(43 44 43 45 45)
(44 43 45 43 44)
(44 39 45 43 44)
(43 45 44 44 43)
(43 44 43 45 43) ; 10
(45 43 45 44 43)
(44 45 44 43 45)
(45 44 43 45 44)
(44 45 44 45 43)
(45 44 43 45 44)
(43 41 45 44 45)
(44 43 45 43 40)
(42 45 45 43 44)
(45 44 43 44 45)
(44 44 43 38 43) ; 20
(43 45 44 43 44)
(45 44 45 43 44)
(43 44 45 44 45)
(39 43 45 43 45)
(43 45 44 46 43)
(43 44 45 43 45)
(37 43 45 43 44)
(45 43 40 44 45)
(43 44 43 45 43)
(44 45 43 44 43) ; 30
(45 43 44 43 41)
(43 44 45 44 43)
(44 43 44 43 45)
(43 45 37 44 43)
(45 44 43 45 44)
(44 43 45 44 45)
(43 45 44 45 43)
(43 44 45 43 44)
(45 43 44 45 43)
(44 43 44 45 43) ; 40
(42 44 43 44 43)
(44 45 43 45 44)
(43 44 45 44 38)
(44 39 43 44 45)
(43 45 44 43 44)
(44 44 45 43 45)
(43 45 44 45 43)
(43 44 41 43 44)
(37 45 44 45 43)
(43 44 45 44 43) ; 50
(44 45 43 43 46)
(45 43 44 45 44)
(44 45 43 44 43)
(45 43 44 41 43)
(43 44 45 44 45)
(44 45 44 45 43)
(45 43 44 43 44)
(43 44 45 38 45)
(44 43 44 45 43)
(43 44 43 44 45) ; 60
(44 43 44 45 43)
(39 44 45 43 44)
(44 45 44 43 45)
(44 43 45 44 43) ; 64 <-- start line
(45 44 43 41 45)
(43 45 44 43 44)
(42 43 45 44 45)
(45 44 43 45 43)
(44 43 45 44 43)
(43 45 44 45 44) ; 70
(44 43 45 44 43))))
(5/28)紫の部分の名前をちょっと訂正