Tanks JS1K
Кстати о JavaScript. Может быть
Не так давно мне
Мне очень хотелось сократить названия методов канваса, очень уж они длинные — putImageData, createImageData и так далее. Для игры, занимающей (сейчас) 713 байт это расточительно. На эту тему в голову идея и пришла.
Идея заключается в том, чтобы пройтись по списку методов и присвоить объекту их же, но под другими, короткими именами. Самый простой способ, до которого я додумался — это взять пятую букву названия метода (правда, кажется a[i] для строк не везде будет работать, вариант с charAt занимает на 7 байт больше).
Получился такой код:
for(i in a)a[i[V=4]]=a[i]Переменная «V» со значением «четыре» используется дальше как счётчик оставшихся жизней, в переменной «a» ссылка на объект контекста канваса. В итоге, если мне надо вызывать метод «a.putImageData», я могу вызвать его как «a.m», вместо «a.createImageData» можно вызывать «a.t» и так далее (отчёт с нуля начинается).
Чем больше таких вызовов, тем больше экономия. Единственное, свойства (например «fillStyle») так сократить не получится.
Комментарии 2
Я сейчас отхожу от другого похожего батла — минимизировать энкодер в base64 до размера, не превышающего 140 байт.
http://sla.ckers.org/forum/read.php?24%2C36342
И до сих пор там ситуация до конца не ясна.
Надо бы, конечно,