Холст игры: моя еда исчезает - PullRequest
2 голосов
/ 03 ноября 2011

Я смотрел скриншоты 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), так что я могу только думать, что она находится внутризмея .. У меня проблемы с отладкой этой проблемы.

Демонстрацию приложения можно найти здесь .

Заранее спасибо!

1 Ответ

4 голосов
/ 03 ноября 2011
inSnake = (x, y) ->
    for part in Snake.position              
        if x == part.x && y == part.y
            true
    false

Похоже, вы хотите сказать return true. В противном случае он всегда будет проходить через весь цикл и возвращать false в конце функции.

...