为什么从vec获取项目会在Clojure和Play clj中创建NullPointerException
我正在创建一个简单的蠕虫游戏在发挥clj 我有一个函数,应该返回一个添加了新纹理对象的专用数量的vec。它代替列表中的坐标和列表中的参数。但每次我将大于3的数字传递给该函数时,它都会给出为什么从vec获取项目会在Clojure和Play clj中创建NullPointerException,clojure,play-clj,Clojure,Play Clj,我正在创建一个简单的蠕虫游戏在发挥clj 我有一个函数,应该返回一个添加了新纹理对象的专用数量的vec。它代替列表中的坐标和列表中的参数。但每次我将大于3的数字传递给该函数时,它都会给出NullPointerException 该函数是从render函数调用的。Lastx和lasty都是蠕虫头部最后位置的向量。 这是我的密码: (defn getCoords [list many] (nth (into [] (reverse list)) (- many 1))) (d
NullPointerException
该函数是从render函数调用的。Lastx和lasty都是蠕虫头部最后位置的向量。
这是我的密码:
(defn getCoords [list many]
(nth (into [] (reverse list))
(- many 1)))
(defn getParts[entities many]
(clojure.set/union
(vec (for [i (range 1 many)]
(assoc (texture "part.png") :height 30 :width 30
:x (getCoords (get (first entities) :lastx) i)
:y (getCoords (get (first entities) :lasty) i))))
entities))
;; and this calls it
(render! screen (getParts entities 4 ))
这是实体的内容
[(assoc (texture "part.png") :x 30 :y 30 :direction 2 :dead 1 :height 30 :width 30:score 4 :lastx [] :lasty[])
(assoc (texture "text.png") :width 200 :height 0 :x (- (/ (game :width) 2) 40) :y (/ (game :height) 2))
(assoc (texture "food.png") :height 0 :x (*(rand-int 25) 30) :y (*(rand-int 19) 30))]
提前谢谢 你需要在问题中多加说明。比如什么是
纹理
或者“part.png”的内容,或者实体
纹理是play clj的纹理。现在添加了实体的内容