dmitry111, почему ты не так объект создаешь, а пишешь через new, в 7-й строке функция для чего тебе тогда?
var obj = Factory(type); |
Цитата:
Так вот эти параметры нужно подгружать и инициализировать в конструкторе при каждой смене карты. Хранить их в самом конструкторе бессмысленно (карты разные), передавать их при создании объекта тоже не катит, потому как карта имеет динамические элементы, которые должны создаваться конструктором в любой момент игры, а так как создают их низкоуровневый код, то ему все равно что создать - что пулю, что ящик в игре.. он просто получает координаты и имя модели |
Цитата:
|
dmitry111, слушай ты объект от конструктора отличаешь почитай свои же комментарии в коде)
|
Цитата:
Я не вижу всей картины но сейчас это выглядит так что ты через пару месяцев будешь это все проклинать) Мне кажется хорошей идеей будет сами игровые объекты разделить на классы, а карту держать в объекте. |
dmitry111, покажи пример как ты добавляешь конструктор, т.е. в Factory.add(data) data что представляет из себя.
|
Цитата:
|
Цитата:
function Bullet() {} function Soldier() {} Factory.add({ 'Bullet': Bullet, 'Soldier': Soldier }) |
Цитата:
(function () { var root = this; var Factory = {}; // Фабрика для строительства объектов игры // создает объект игры указанного типа // по заданным параметрам //function Factory(type, params) { // if (typeof Factory[type] !== 'function') { // return; // } // return new Factory[type](params); //} // добавление конструкторов Factory.add = function (data) { var name; for (name in data) { if (data.hasOwnProperty(name)) { Factory[name] = data[name]; } } }; if (typeof exports !== 'undefined') { if (typeof module !== 'undefined' && module.exports) { exports = module.exports = Factory; } exports.Factory = Factory; } else { if (typeof define === 'function' && define.amd) { define('Factory', [], function () { return Factory; }); } else { root.Factory = Factory; } } }.call(this)); function Soldier(name) { this.name = name; } Factory.add({ 'Soldier': Soldier }); var soldier = new Factory['Soldier']('Vasya'); console.log(soldier); |
51 строка должна быть
var soldier = Factory('Soldier', 'Vasya'); |
Часовой пояс GMT +3, время: 12:34. |