さて、私は迷路ゲーム、パックマンをやろうとしています。マップの作成とレンダリングが必要です。このために、必要なさまざまな状態で「ベクトルのマップ」を作成しました。
これはコードです:
#lang racket
(require 2htdp/image 2htdp/universe
(only-in racket/draw
read-bitmap))
(require math/matrix)
(require math/array)
(define CELL-SIZE 20)
(define E (rectangle CELL-SIZE CELL-SIZE "solid" "black"))
(define D (circle 3 "solid" "YELLOW"))
(define W (rectangle CELL-SIZE CELL-SIZE "solid" "blue"))
(define C (rectangle CELL-SIZE CELL-SIZE "solid" "red"))
(define Initial-Map
(vector (vector W W W W W W W W W W W W W)
(vector W C D D D D D D D D D D W)
(vector W D W D W W W W W D W D W)
(vector W D W D W D D D W D W D W)
(vector W D W D D D W D D D W D W)
(vector W D W W D W W W D W W D W)
(vector E D D D D D E D D D D D E)
(vector W D W W D W W W D W W D W)
(vector W D W D D D W D D D W D W)
(vector W D W D W D W D W D W D W)
(vector W D W D D D W D D D W D W)
(vector W D W D W D D D W D W D W)
(vector W D D C W D W D W D D D W)
(vector W W W W W W W W W W W W W)))
(define EMPTY (rectangle CELL-SIZE CELL-SIZE "solid" "black")) ; Empty
(define DOT (circle 3 "solid" "white")) ; DOT
(define WALL (rectangle CELL-SIZE CELL-SIZE "solid" "blue")) ; Wall
(define Scene (empty-scene 400 400 "black"))
(define (paintWorld mundo) (place-image (vector*->matrix Initial-Map) 100 100 Scene))
(big-bang 4
;(on-key changePacmanM)
;(on-tick automaticMovePacman 0.2)
(to-draw paintWorld)
(state true)
(name "Pacman - Racket"))
これが問題です
Initial-Mapはマップ ベクトルです。ビッグバン創造宇宙関数のためにどのようにレンダリングできますか?
に渡すために、 vector*->matrixを使用してベクトルを行列に変換しようとしましたplace-image
:
(place-image (vector*->matrix Initial-Map) 100 100 Scene)
しかし、次のエラーが表示されます。
place-image: (mutable-array #[#[(object:image% ...) (object:image% ...) (object:image% ...) (object: image% ...) (オブジェクト:image% ...)