Skip to content

Commit

Permalink
Changed the impulse test so that it takes advantage of the new forces!
Browse files Browse the repository at this point in the history
  • Loading branch information
David Perit committed Jun 7, 2012
1 parent d19af35 commit f3ada28
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 20 deletions.
16 changes: 2 additions & 14 deletions examples/cube-impulse/cube-impulse.js
Expand Up @@ -30,14 +30,8 @@ document.addEventListener( "DOMContentLoaded", function( e ) {
}
};

var box2dOptions = {
resolver: {
gravity: [0,-1]
}
};

engine.registerExtension( cubicvrExtension, cubicvrOptions );
engine.registerExtension( box2dExtension);//, box2dOptions);
engine.registerExtension( box2dExtension );

var resources = {};

Expand Down Expand Up @@ -94,13 +88,7 @@ document.addEventListener( "DOMContentLoaded", function( e ) {

space.add(new engine.simulation.Entity( "gravity",
[
new box2d.Force({direction:[0,-1], magnitude:1})
]
));

space.add(new engine.simulation.Entity( "antiGravity",
[
new box2d.Force({direction:[0,1], magnitude:4})
new box2d.Force({direction:[0,-1], magnitude:1, forceType:box2d.Force.ForceTypes.GLOBAL})
]
));

Expand Down
15 changes: 13 additions & 2 deletions gladius-box2d.js
Expand Up @@ -90478,7 +90478,8 @@ define('src/services/resolver',['require','base/service','core/event','_math','b
// Also make sure that we transform each force according to the transforms of whatever parent objects that transform has
// this would be a good unit test
var totalForce = new math.Vector2();
for (var entityId in registeredComponents["Force"]){
var entityId;
for (entityId in registeredComponents["Force"]){
math.vector2.add(totalForce, registeredComponents["Force"][entityId].getForce(), totalForce);
}

Expand All @@ -90488,7 +90489,7 @@ define('src/services/resolver',['require','base/service','core/event','_math','b
// Update all physics components
var updateEvent = new Event( 'Update', false );
for( var componentType in registeredComponents ) {
for( var entityId in registeredComponents[componentType] ) {
for( entityId in registeredComponents[componentType] ) {
component = registeredComponents[componentType][entityId];
space = component.owner.space;
while( component.handleQueuedEvent() ) {}
Expand Down Expand Up @@ -90754,6 +90755,12 @@ define('src/components/force',['require','box2d','common/extend','base/component
this._magnitude = 0;
}

if (options.forceType){
this._forceType = options.forceType;
}else{
this._forceType = 0;
}

Object.defineProperty(this, 'active', {
get: function getActive() {
return this._active ? true : false;
Expand Down Expand Up @@ -90825,6 +90832,10 @@ define('src/components/force',['require','box2d','common/extend','base/component
};
extend( Force.prototype, prototype );

Force.ForceTypes = {
GLOBAL : 0
};

return Force;
});
if ( typeof define !== "function" ) {
Expand Down
4 changes: 2 additions & 2 deletions gladius-box2d.min.js

Large diffs are not rendered by default.

23 changes: 22 additions & 1 deletion gladius-core.js
Expand Up @@ -5162,6 +5162,10 @@ define('core/engine',['require','_math','common/multicast-delegate','core/reques
for( j = 0, m = componentNames.length; j < m; ++ j ) {
componentName = componentNames[j];
ComponentConstructor = components[componentName].bind( null, service );
var componentProperties = Object.keys(components[componentName]);
for (i = 0, l = componentProperties.length; i < l; ++ i) {
ComponentConstructor[componentProperties[i]] = components[componentName][componentProperties[i]];
}
extensionInstance[componentName] = ComponentConstructor;
}

Expand All @@ -5170,11 +5174,15 @@ define('core/engine',['require','_math','common/multicast-delegate','core/reques
for( j = 0, m = resourceNames.length; j < m; ++ j ) {
resourceName = resourceNames[j];
ResourceConstructor = resources[resourceName].bind( null, service );
var resourceProperties = Object.keys(resources[resourceName]);
for (i = 0, l = resourceProperties.length; i < l; ++ i) {
ComponentConstructor[resourceProperties[i]] = resources[resourceName][resourceProperties[i]];
}
extensionInstance[resourceName] = ResourceConstructor;
}
}
}

components = extension.components;
componentNames = Object.keys( components );
for( i = 0, l = componentNames.length; i < l; ++ i ) {
Expand All @@ -5190,11 +5198,24 @@ define('core/engine',['require','_math','common/multicast-delegate','core/reques
ResourceConstructor = resources[resourceName];
extensionInstance[resourceName] = ResourceConstructor;
}

//Loop through extension, add any unrecognized properties to extensionInstance
var extensionProperties = Object.keys(extension);
for (i = 0, l = extensionProperties.length; i < l; ++ i) {
if (extensionProperties[i] != "resources"
&& extensionProperties[i] != "services"
&& extensionProperties[i] != "components"
&& extensionProperties[i] != "name"){
extensionInstance[extensionProperties[i]] = extension[extensionProperties[i]];
}
}

this._extensions[extension.name] = extensionInstance;
if( !this.hasOwnProperty( name ) ) {
this[extension.name] = extensionInstance;
}

//

return this;
}
Expand Down
2 changes: 1 addition & 1 deletion gladius-core.min.js

Large diffs are not rendered by default.

0 comments on commit f3ada28

Please sign in to comment.