jquery 및 box2dweb을 사용하여 모양에 이미지를 추가하는 데 정말로 어려움을 겪고 있습니다. 내 코드는 여기에 좋은 예를 기반으로 : 이미지와 http://henry.brown.name/experiments/box2d/bricks.php
여기에서 촬영 한 바인딩 : 나는 아래 CreateObject를 호출 한 함수를 붙여 넣은 http://www.jeremyhubble.com/box2d.htmlBox2dweb : 도형에 이미지 추가
, 의견 내 추가 사항을 표시했다. src를 userdata를 사용하여 전달하는 중입니다. 그런 다음 이미지를 소급하여 추가했지만 이미지가 나타나지 않는 것 같습니다. 오류 메시지가 표시되지 않습니다. 크롬
function createObject(mouseX,mouseY,width,height,gravity){
bodyDef.type = b2Body.b2_dynamicBody;
bodyDef.position.Set(mouseX, mouseY);
bodyDef.angle = 0;
bodyDef.userData = {
'width':width,
'height':height,
'gravity':gravity,
'imgsrc':'images/logo.png',
'imgsize': '16',
'bodysize': '5'
}
fixDef.shape = new b2PolygonShape;
fixDef.shape.SetAsBox(
width/2, // Math.random() + 0.1 //half width
height/2 // Math.random() + 0.1 //half height
);
var body = world.CreateBody(bodyDef).CreateFixture(fixDef);
//custom code starts
var canvaselem = document.getElementById("canvas");
var context = canvaselem.getContext("2d");
var canvaswidth = canvaselem.width-0;
var canvasheight = canvaselem.height-0;
var bodies = world.GetBodyList();
var bodyCount = world.GetBodyCount();
for(var i = 0; i < bodyCount; i++){
var thisbody = bodies.GetUserData();
if(thisbody){
if(thisbody.imgsrc){
console.log(thisbody);
// This "image" body destroys polygons that it contacts
var edge = bodies.GetContactList();
while (edge) {
var other = edge.other;
if (other.GetType() == b2Body.b2_dynamicBody) {
var othershape = other.GetFixtureList().GetShape();
if (othershape.GetType() == body.e_polygonShape) {
world.DestroyBody(other);
break;
}
}
edge = edge.next;
}
var position = bodies.GetPosition();
var flipy = canvasheight - position.y;
var size =thisbody.imgsize;
var imgObj = new Image(size,size);
imgObj.src = thisbody.imgsrc;
context.save();
context.translate(position.x,flipy);
context.rotate(bodies.GetAngle());
alert(bodies.GetAngle());
var s2 = -1*(size/2);
var scale = thisbody.bodysize/-s2;
context.scale(scale,scale);
context.drawImage(imgObj,s2,s2);
context.restore();
}
}
bodies = bodies.GetNext();
}
//custom code ends
}
내 콘솔 출력 : 감사
Object {width: 1, height: 2, gravity: 0, imgsrc: "images/anm.png", imgsize: "16"…}
bodysize: "5"
gravity: 0
height: 2
imgsize: "16"
imgsrc: "images/anm.png"
width: 1
__proto__: Object
어떤 도움 : 여기 당신은 간다
나는이 주위에 떠있는 box2dweb의 다른 버전과 관련이있다 생각합니다. 내 두 예제가 다른 버전을 사용하는 것 같습니다. 그리고 내가 사용할 수있는 버전 (예 : 여기에 사용 된 버전 : http://henry.brown.name/experiments/box2d/bricks.php)으로이 작업을 수행하지 마십시오. 도움을 주시면 감사하겠습니다. – Vauneen