Как стать автором
Обновить

Комментарии 23

Я ничего не понял, но результат мне нравится.
я офигиваю, дорогая редакция.
впечатляет!
> Сайт с демками пока лежит, но некоторые из них можно найти на сайтах авторов.

А можно в пост покидать ссылок на приложения на сайтах авторов?
> Например, вот первое место.

в хроме завелось у кого-нибудь? :(
да
у меня управление не работает. ничего не делает. вверх-вниз скроллит страницу
По самой демке сначала кликните — заработает.
А давайте будем заходить на сайты по очереди :-) Чтобы они не падали :-)
В FF 3.6.10 первое место не работает
canvas.getContext is not a function
Kubutnu, FF 3.6.11pre — работает
js1k.com/demo/750 — эта сволочь, однако, меня ещё и переигрывает.
Из минусов: нет рокировки

Мда, алгоритм игры несколько странноват — куда и зачем пошёл король я так и не понял :)
Король пошёл поднимать в атаку пешек.
однако на все ссылки
Service Temporarily Unavailable :)
Очень впечатляет! Гораздо больше, чем победители недавнего конкурса 10k.
А есть обзор победителей на хабре?
Мне 10к конкурс нравился больше. И радует что двух победителей в нем (из 4), заняли хабралюди, которые писали про свои проекты.
Кто объяснит, откуда в примере берутся короткие имена методов context-а?
В спецификации canvas ничего не нашел такого.

// draws the terrain block. m is moveTo, qt is quadraticCurveTo, l is lineTo
m(-6,screen_height);qt(-6,height,3,height);l(47,height);qt(56,height,56,screen_height);A(gradient);
вот отсюда
for(prop in context=canvas.getContext('2d'))
  context[prop[jump=speed_x=speed_y=0]+(prop[6]||'')]=context[prop];

или если убрать лишнее
for(prop in context=canvas.getContext('2d'))
  context[prop[0]+(prop[6]||'')]=context[prop];

то есть перебираем свойства контекста и делаем алиасы как первый символ имени + шестой (если он есть); видимо при этом они не пересекаются.
дальше идет with (context) {… } внутри которого доступны как длинные имена так и короткие.
вот такой замечательных ход для экономии байт :)
имелось ввиду нулевой и шестой, либо первый и седьмой
// для зануд :)
Плюс еще заодно проинициализировали начальные значения для переменных: jump=speed_x=speed_y=0

Красота… Спасибо!
Сам автор считает это самой полезной выдумкой для уменьшения размера :)

Mechanized Abbreviation

The coolest hack in this program is probably the mechanized abbreviation of the canvas context methods. Method names like quadraticCurveTo, createLinearGradient are nice and explicit, but those two taken together already eat 3.5% of the bytes available---when only referenced once! I needed to use them, but I wanted to avoid spelling them.

А мне эта дичайше понравилась.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории