Вот, поставил перед собой задачу переписать клиента от prettypets на Javascript. Причины:
- Ради такой простой игры далеко не каждый захочет скачивать и устанавливать что-то. Люди ленивые стали. Следовательно, в браузерную игру больше людей поиграет.
- Нужно изучить нормально Javascript для работы.
- Java 8 в Android-е нет. И Swing тоже. Следовательно, для него всё-равно придётся переписывать. Тогда уж лучше сразу на Javascript.
- В Javascript есть всё необходимое для клиента.
- Javascript более кроссплатформеннный язык, чем Java.
Структуру клиента решил не менять, а переписывать в лоб. Класс в класс. Интерфейс в класс (интерфейсов в Javascript нет). Пакет в вложенные объекты (пакетов в Javascript нет). Для минимизации кода и сборки всего в один большой исполняемый файл использую YUI Compressor. Пока переписал только пару файлов и даже толком ничего не запускал. Впрочем, запустить на проверку я смогу только тогда, когда все файлы сконвертирую. Конвертирую руками. Вот таблица соответствий конвертации, которую пока выявил:
Java | Javascript |
System.getTimeMillis() | new Date().getTime() |
package org.mysite.myproject; public class Class1… |
var org; if (!org) org = {}; if (!org.mysite) org.mysite = {}; if (!org.mysite.myproject) org.mysite.myproject = {};var org.mysite.myproject.Class1 = function (… и методы. |
Я только в самом начале и поэтому, возможно, совершил какие-нибудь ошибки. В конце я собираюсь написать более подробную статью о том как переделывал. Сейчас пока делаю так. Копирую содержимое одного пакета из клиента в папку с Javascript кодом. Поочерёдно переименовываю файлы с *.java в *.js и правлю их содержимое.
TypeScript и флаг в руки =)