2014-01-05 2 views
1

Я хочу использовать Box2D-Web с Meteorjs как на стороне клиента, так и на стороне сервера. Я использовал это в nodejs. Была небольшая конфигурация, которая экспортировала переменную Box2D, и она работала с nodejs. Дополнительная конфигурация была exports.Box2D = Box2D; в нижней части библиотеки.Box2d-Web with Meteor

Но я не смог загрузить его в meteor. Я поставил Box2D-web под lib в моем проекте. Но это дает ошибку, и я все еще не понимаю, в чем проблема.

Вот что говорит метеорит;

W20140106-00:15:03.627(2)? (STDERR) /Users/ahmetdal/workspace/realhaxtmp/.meteor/local/build/programs/server/boot.js:186 
W20140106-00:15:03.692(2)? (STDERR) }).run(); 
W20140106-00:15:03.692(2)? (STDERR) ^
W20140106-00:15:03.692(2)? (STDERR) TypeError: Cannot call method 'write' of undefined 
W20140106-00:15:03.693(2)? (STDERR)  at Console.log (console.js:53:16) 
W20140106-00:15:03.694(2)? (STDERR)  at Object.Meteor._debug (packages/meteor/debug.js:41) 
W20140106-00:15:03.694(2)? (STDERR)  at _.extend.publish (packages/livedata/livedata_server.js:1166) 
W20140106-00:15:03.694(2)? (STDERR)  at app/server/publications.js:7:12 
W20140106-00:15:03.694(2)? (STDERR)  at /Users/ahmetdal/workspace/realhaxtmp/.meteor/local/build/programs/server/boot.js:159:61 
W20140106-00:15:03.694(2)? (STDERR)  at Array.forEach (native) 
W20140106-00:15:03.694(2)? (STDERR)  at Function._.each._.forEach (/Users/ahmetdal/.meteor/tools/09b63f1ed5/lib/node_modules/underscore/underscore.js:79:11) 
W20140106-00:15:03.695(2)? (STDERR)  at /Users/ahmetdal/workspace/realhaxtmp/.meteor/local/build/programs/server/boot.js:159:5 

В библиотеке Box2D-Web отсутствует ошибка. Я попытался найти альтернативное значение для ошибки, но я тоже ничего не мог найти.

Эта ошибка возникает, когда я помещаю библиотеку под папку lib под корень проекта.

Здесь я не размещал весь код библиотеки. Потому что он действительно состоит из слишком большого количества строк кода.

Какую дополнительную конфигурацию в библиотеке можно сделать, чтобы применить ее к Meteorjs?

Спасибо!

+0

Метеор падает, как только я добавляю box2d. Мое предположение, глядя на их код, заключается в том, что, поскольку они много объявляют глобальным переменным, если один из этих глобальных символов называется одним из метеоритов, то они просто разрушают все это. –

+0

Какая хорошая ссылка для Box2d-Web? –

ответ

0

Размещение файлов Javascript, таких как Box2D-Web-библиотека в папке lib в корне вашего проекта, приведет к тому, что код будет запущен как на клиенте, так и на сервере. Ошибка возникает, когда библиотека запускается на сервере.

Чтобы исправить это, просто поместите файл библиотеки в /client/lib/.

+0

На самом деле я хочу использовать его на стороне сервера из-за симуляции игры на стороне сервера. Вот почему я помещаю его под папку lib. Мне это нужно как на стороне клиента, так и на стороне сервера. –

+0

Хм, я, должно быть, неправильно понял ваш вопрос. Я не уверен в ошибке в этом случае. Пожалуйста, дайте мне знать, если вы найдете решение! – justswim