Комментарии 23
Я ничего не понял, но результат мне нравится.
+1
я офигиваю, дорогая редакция.
+2
впечатляет!
0
> Сайт с демками пока лежит, но некоторые из них можно найти на сайтах авторов.
А можно в пост покидать ссылок на приложения на сайтах авторов?
А можно в пост покидать ссылок на приложения на сайтах авторов?
0
> Например, вот первое место.
в хроме завелось у кого-нибудь? :(
в хроме завелось у кого-нибудь? :(
0
А давайте будем заходить на сайты по очереди :-) Чтобы они не падали :-)
+6
В FF 3.6.10 первое место не работает
canvas.getContext is not a function
0
js1k.com/demo/750 — эта сволочь, однако, меня ещё и переигрывает.
Из минусов: нет рокировки
Из минусов: нет рокировки
+1
однако на все ссылки
Service Temporarily Unavailable :)
Service Temporarily Unavailable :)
0
Очень впечатляет! Гораздо больше, чем победители недавнего конкурса 10k.
+1
Кто объяснит, откуда в примере берутся короткие имена методов 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);
В спецификации 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);
0
вот отсюда
или если убрать лишнее
то есть перебираем свойства контекста и делаем алиасы как первый символ имени + шестой (если он есть); видимо при этом они не пересекаются.
дальше идет with (context) {… } внутри которого доступны как длинные имена так и короткие.
вот такой замечательных ход для экономии байт :)
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) {… } внутри которого доступны как длинные имена так и короткие.
вот такой замечательных ход для экономии байт :)
+1
имелось ввиду нулевой и шестой, либо первый и седьмой
// для зануд :)
// для зануд :)
0
Плюс еще заодно проинициализировали начальные значения для переменных: jump=speed_x=speed_y=0
Красота… Спасибо!
Красота… Спасибо!
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.
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.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Итоги конкурса JS1k