【发布时间】:2014-02-23 03:49:40
【问题描述】:
我正在尝试弄清楚如何使用 PhysicsJS。我首先只是想简单地弄清楚如何改变让我们说点击时对象的位置或速度......但我就是想不通!
( function()
{
var viewWidth = 500,
viewHeight = 300,
renderer = Physics.renderer( 'canvas',
{
el: 'viewport',
width: viewWidth,
height: viewHeight,
meta: false,
styles:
{
'circle' :
{
strokeStyle: 'hsla(60, 37%, 17%, 1)',
lineWidth: 1,
fillStyle: 'hsla(60, 37%, 57%, 0.8)',
angleIndicator: 'hsla(60, 37%, 17%, 0.4)'
}
}
}),
viewportBounds = Physics.aabb(0, 0, viewWidth, viewHeight),
constraint = {
aabb: viewportBounds,
restitution: 0.99,
cof: 0.99
},
ballOptions = {
x: 100, // x-coordinate
y: 100, // y-coordinate
vx: 0.0, // velocity in x-direction
vy: 0.0, // velocity in y-direction
radius: 20
},
gravity = Physics.behavior('constant-acceleration',
{
acc: { x : 0, y: 0.0004 }
}),
ball = Physics.body('circle', ballOptions );
Physics( function( world )
{
// add the renderer
world.add( renderer );
// add circle
world.add( ball );
// subscribe to ticker to advance the simulation
Physics.util.ticker.subscribe(function( time, dt )
{
world.step( time );
});
// on every step...
world.subscribe( 'step', function()
{
world.render();
});
world.subscribe( 'collisions:detected', function( $collision )
{
});
var onElementClick = function()
{
// do something
};
document.getElementById( 'viewport' ).addEventListener( 'click', onElementClick, false );
// Lets GO!
Physics.util.ticker.start();
});
})();
非常感谢任何帮助
【问题讨论】:
-
@ScottSPerry 说了什么。你也可以施加一些力量。使用 .applyForce()。
标签: physicsjs