Вы должны попытаться включить "box2D" в требование вашего файла main.js.Box2D загрузится как глобальный объект, который вы сможете использовать позже.
require([
'app',
'box2d'
], function(app){
app.init();
});
Вы не должны упоминать об этом в функции, или вы можете указать это как «игнорировать»:
require([
'app',
'box2d'
], function(app, ignore){
app.init();
});
В консоли Chrome вы можете ввести Box2D и вы должны увидетьэто всплывает как глобальный объект.Как только вы знаете, что это глобально, вы можете начать использовать его.
Затем в вашем ArenaController вы можете перечислить «box2d» в массиве определения, но не в функции:
define([
'jquery',
'underscore',
'backbone',
'_69_',
'game/controller/object',
'game/model/arena',
'game/view/arena',
'box2d'
], function($, _, Backbone, _69_, Object, Model, View) {
var ArenaController = Object.extend ({
init : function (){
this._super(Model, View);
var b2World = Box2D.Dynamics.b2World; //Box2D should be available as a global
this.world = new b2World(
new b2Vec2(0, 10) //gravity
, true //allow sleep
);
this.appView;
}
});
return new ArenaController;
});