Javascript 帆布游戏:我的食物消失了
我在看ThinkVitamin关于构建一个画布游戏的视频,但似乎最后一部分不见了,我不得不自己弄清楚很多东西 我成功地构建了这个游戏,但是有两个bug不断出现 编辑:将第一个BUG转移到另一个问题中,因为这一个问题得到了回答 另一个错误是食物有时不出现。我不知道为什么会发生这种情况,但我唯一能想到的是蛇体内的食物。然而,我也为此实施了一项检查,但这种情况仍然存在:Javascript 帆布游戏:我的食物消失了,javascript,html,canvas,coffeescript,Javascript,Html,Canvas,Coffeescript,我在看ThinkVitamin关于构建一个画布游戏的视频,但似乎最后一部分不见了,我不得不自己弄清楚很多东西 我成功地构建了这个游戏,但是有两个bug不断出现 编辑:将第一个BUG转移到另一个问题中,因为这一个问题得到了回答 另一个错误是食物有时不出现。我不知道为什么会发生这种情况,但我唯一能想到的是蛇体内的食物。然而,我也为此实施了一项检查,但这种情况仍然存在: inSnake = (x, y) -> for part in Snake.position
inSnake = (x, y) ->
for part in Snake.position # check if the food is being placed inside the snake
if x == part.x && y == part.y
true
false
placeFood = ->
x = Math.round Math.random() * MAX_X - 1
y = Math.round Math.random() * MAX_Y - 1
if inSnake x, y # if so, run placeFood() again
placeFood()
Food.position = { x: x, y: y }
食物应该随机放在我的画布里(我指定了MAX_X和MAX_Y),所以我只能想象它在蛇里面。。我调试这个问题有困难
可以找到该应用程序的演示
提前谢谢
inSnake = (x, y) ->
for part in Snake.position
if x == part.x && y == part.y
true
false
看起来您想说
返回true
。否则,它将始终运行整个循环,并在函数末尾返回false
。我得到未捕获范围错误:当我更改该值时,超过了最大调用堆栈大小
;看起来它一直在调用placeFood()。试着打印出x和y。看看编译后的JS。没有括号,我不知道什么是Math.round Math.random()*MAX_X-1
意思。哦,你说得对。我需要括号(MAX_X-1)。我想这解决了食物消失的问题。谢谢你确定不是食物中毒(失去食物)造成的吗?