我正在观看有关构建画布游戏的ThinkVitamin截屏视频,但似乎最后一部分缺失了,我不得不自己想出很多东西。
我成功构建了游戏,但是有两个漏洞不断涌现。
编辑:将第一个问题转移到另一个问题,因为这个问题得到了回答!
另一个错误是食物有时不会出现。我对于为什么会发生这种情况一无所知,但我唯一能想到的就是食物实际上出现在蛇体内。但是,我已经对此进行了检查,但仍然会发生:
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),所以我只能想到它在蛇里面......我在调试这个问题时遇到了麻烦。
可以找到该应用程序的演示here。
提前致谢!
答案 0 :(得分:4)
inSnake = (x, y) ->
for part in Snake.position
if x == part.x && y == part.y
true
false
看起来你想说return true
。否则它将始终贯穿整个循环并在函数末尾返回false
。