画布游戏:我的食物消失了

时间:2011-11-03 10:48:00

标签: javascript html5 canvas coffeescript

我正在观看有关构建画布游戏的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

提前致谢!

1 个答案:

答案 0 :(得分:4)

inSnake = (x, y) ->
    for part in Snake.position              
        if x == part.x && y == part.y
            true
    false

看起来你想说return true。否则它将始终贯穿整个循环并在函数末尾返回false