Недавно я написал простой Тетрис для игрового движка Love на языке Lua. Сегодня я решил его перенести на HTML5.
Чтобы было веселей я решил использовать не чистый Javascript, а его расширение от Microsoft - Typescript. На сей раз я не использовал сторонних библиотек, ограничившись стандартным Canvas, являющимся частью HTML5.
Типизация Typescript помогает выявить некоторые ошибки, но всё же скрывающаяся за хлипким фасадом полустатически типизированного костыля сущность Javascript даёт о себе знать, и часть ошибок оказываются успешно пропущены на этап исполнения.
По сравнению с кодом для Love код для HTML5, не считая html файла, вырос с 400 до 500 строк. Это вызвано как явно прописанными типами, так и дополнительным кодом из-за отсутствия сторонних библиотек.
Изначально тестировал в Firefox, и, запустив в Chromium, обнаружил, что клавиатура не работает, поскольку в Chromium нет свойства key у объекта keyboardEvent. Замена вызова key на keyCode спасла ситуацию, хотя это, конечно, симптоматично.
Код: https://github.com/ComdivByZero/tetris
Запуск: открыть index.html в браузере с поддержкой HTML5
Обновление: после запуска на планшете, где клавиатуры разумеется нет, добавил в html файл кнопок. Стало возможно играть, но удобным это назвать сложно.
Очки : 0
Чтобы было веселей я решил использовать не чистый Javascript, а его расширение от Microsoft - Typescript. На сей раз я не использовал сторонних библиотек, ограничившись стандартным Canvas, являющимся частью HTML5.
Типизация Typescript помогает выявить некоторые ошибки, но всё же скрывающаяся за хлипким фасадом полустатически типизированного костыля сущность Javascript даёт о себе знать, и часть ошибок оказываются успешно пропущены на этап исполнения.
По сравнению с кодом для Love код для HTML5, не считая html файла, вырос с 400 до 500 строк. Это вызвано как явно прописанными типами, так и дополнительным кодом из-за отсутствия сторонних библиотек.
Изначально тестировал в Firefox, и, запустив в Chromium, обнаружил, что клавиатура не работает, поскольку в Chromium нет свойства key у объекта keyboardEvent. Замена вызова key на keyCode спасла ситуацию, хотя это, конечно, симптоматично.
Код: https://github.com/ComdivByZero/tetris
Запуск: открыть index.html в браузере с поддержкой HTML5
Обновление: после запуска на планшете, где клавиатуры разумеется нет, добавил в html файл кнопок. Стало возможно играть, но удобным это назвать сложно.
Комментариев нет:
Отправить комментарий