После попытки пары различных фреймворков HTML5, я всегда считал, что чистая JS самая привлекательная. Однако я не уверен в том, как я его структурирую.Структурирование игры HTML5 без рамки
В настоящее время я объявляя различные объекты как глобальные переменные, как, например:
var titlescreen = new Titlescreen();
var fps = new FPSTracker();
var input = new Input();
var background = new Background();
var shops = new Shops();
var chunkhandler = new ChunkHandler();
var explosionhandler = new ExplosionHandler();
var ui = new UI();
var world = new World();
var player = new Player();
var joystick = new Joystick();
Моя главная проблема состоит в том, как я их связь друг с другом. Например, класс Player
получает доступ к некоторым функциям world
, просто используя его имя (world.functionINeedToUse();
). Исходя из фона Java, это дает мне очень плохое значение, поскольку оно зависит от объявления этой глобальной переменной с конкретным именем. Хотя я считаю, что JS является более прощающим языком, это все еще не так. Пока у меня не было никаких проблем.
Есть ли более эффективные способы структурирования игры? Как насчет проблемы с игроком/миром?
Знаете ли вы о конструкторах и прототипах? Вы можете использовать ту же структуру, что и в Java. –
Я думаю, что вы ответили на свой вопрос :) Зависимость, которую вы проиллюстрировали, является неизбежной и совершенно хорошей практикой кодирования в JS. – d13
Посредник может работать как объекты, извещающие события, которые другие могут слушать. Для использования функций конструктора и прототипа в JavaScript вы можете прочитать этот ответ: http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711 – HMR