私はBox2DJSを多用していて、ほとんど何でも(例えば、衝突検出フックなど)それを実装するために必要なものはすべて見つけたと思います。ここで私はボックスや円オブジェクトの代わりにボックスや円画像を統合するために書いたコードの抜粋です:
ここでこのスレッドを発見
if (myBallImage)
{
for (aBody = world.m_bodyList; aBody != null; aBody = aBody.m_next)
{
var jellyObject = aBody.GetUserData();
if (typeof(jellyObject) != "object" || jellyObject == null)
continue;
var position = aBody.GetCenterPosition();
var angle = aBody.GetRotation();
var mass = aBody.GetMass();
var halfheight = 0;
var halfwidth = 0;
for (aShape = aBody.GetShapeList(); aShape != null; aShape = aShape.m_next)
{
halfheight = aShape.GetHalfHeight();
halfwidth = aShape.GetHalfWidth();
}
ctx.save();
ctx.translate(position.x, position.y);
ctx.rotate(angle);
ctx.translate(-halfwidth, -halfheight); // halfwidth, halfheight
if (jellyObject.shape == "MYBALL")
ctx.drawImage(myBallImage, 0, 0, halfwidth*2, halfheight*2);
else
if (jellyObject.shape == "MYBOX")
ctx.drawImage(myBoxImage, 0, 0, halfwidth*2, halfheight*2);
ctx.restore();
}
}
else
{
myBallImage = new Image();
myBallImage.src = 'circle.gif';
myBoxImage = new Image();
myBoxImage.src = 'box.gif';
}
: http://stackoverflow.com/questions/3796025/fill -svg-path-element-a-background-image ...しかし、イメージをパターンとして定義して、そのパターンをボールに適用しようとする試みはこれまでにはうまくいきませんでした。私はまた、スレッドのレスポンダが2番目のビットで何をしているのかよく分かりません(パターンを呼び出して、それをsvgオブジェクトに適用することは明らかです)。 – relic