19 июля 2011

Змейка изнутри 2

Привет. Долгожданный под капотом. Ура!

Вам предстоит узнать о чем я наврал в прошлый раз, и о том как я не победил управление.

А именно:

  • Как же все таки правильно нарисовать линию в 1px.
  • Что не так с управлением.
  • Как изменить набор уровней.

Итак. Игра лежит на github. Написана она из рук вон плохо. Точнее код оформлен немного не красиво. Он ужасен. Но оно живое! Да и ладно. Я на самом деле хотел переписать, выделив общие части, но решил не развивать дальше тему игр с Brick Game. Есть еще танк судьбы и куча чего еще.

1px

О рисовании 1px линии в Сanvas я расскажу в картинке.

Управление

В чем проблем? В том что управление слушается всегда, а симуляция движении змеи происходит по времени. Так что сначала было очень весело, когда можно было убить себя начав движение назад. Вообще проверка на то что нельзя двигаться в обратном направлении есть, но если очень быстро нажать в сторону, а потом в обратном направлении, самоубийство прокатывало. Сейчас между шагами симуляции можно нажать только одну из кнопок, остальные будут игнорироваться.

Уровни

Что бы добавить уровни, нужно добавить в maps массив.

[
    [0,0,0,0,0,0,0,0,0,0],
    [0,1,0,0,0,0,1,0,0,0],
    [0,0,1,0,0,1,0,0,0,0],
    [0,0,0,1,1,0,0,0,0,0],
    [0,0,0,1,1,0,0,0,0,0],
    [0,0,1,0,0,1,0,0,0,0],
    [0,1,0,0,0,0,1,0,0,0],
    [0,0,0,0,0,0,0,1,1,0],
    [0,0,0,0,0,0,0,1,1,0],
    [0,0,0,0,0,0,1,0,0,0],
    [0,0,0,0,0,1,0,0,0,0],
    [0,0,0,1,1,0,0,0,0,0],
    [0,0,0,1,1,0,0,0,0,0],
    [0,0,1,0,0,1,0,0,0,0],
    [0,1,0,0,0,0,1,0,0,0],
    [0,0,0,0,0,0,0,1,1,0],
    [0,0,0,0,0,0,0,1,1,0],
    [0,1,0,0,0,0,1,0,0,0],
    [0,0,1,0,0,1,0,0,0,0],
    [0,0,0,0,0,0,0,0,0,0],
],
  • 0 - это пустое место.
  • 1 - это стена.
  • 2 - место, куда нельзя будет поставить яблоко.

Вообще 2 сейчас не используется, но такая возможность есть. Вот.

Вроде больше ничего интересного не было.