2012-04-02 15 views
0

Ich baue ein kleines HTML5-Spiel mit box2dweb. Ich versuche, eine Linie auf mousedown + mousemove zu zeichnen. Diese Linien fangen fallende Quadrate auf und das Objekt soll die Quadrate aus den Löchern auf jeder Seite der Seite abprallen lassen.Box2dweb Eine statische Linie zeichnen

Alles, was ich tun konnte, ist mehrere Quadrate entlang der MausX und MausY zu zeichnen, um eine durchgezogene Linie zu simulieren, aber ich denke nicht, dass dies ausreicht. Kann mir jemand helfen zu verstehen, wie man eine durchgezogene Linie oder ein einzelnes Polygon zeichnet, das der Form der gewünschten Linie entspricht?

Die unfertige ist hier http://acoolsip.com/html5/mobile/

derzeit die Methoden, die per Mausklick, mousemove- und die Linienzeichnung sind diese Funktionen umgehen.

function addClick(x, y, dragging) 
{ 
    clickX.push(x); 
    clickY.push(y); 
    clickDrag.push(dragging); 

    bodyDef.type = b2Body.b2_staticBody; 
    fixDef.shape = new b2PolygonShape; 
    fixDef.shape.SetAsBox(
     0.1 //Math.random() + 0.1 //half width 
     , 0.1 //Math.random() + 0.1 //half height 
    ); 

    //the position of the created object   
    bodyDef.position.x = x; 
    bodyDef.position.y = y;    

    //bodyDef.angle = 1; 
    world.CreateBody(bodyDef).CreateFixture(fixDef);  
} 



document.addEventListener("mousedown", function(e) { 
     isMouseDown = true; 
     mouseX = (e.clientX - canvasPosition.x)/30; 
     mouseY = (e.clientY - canvasPosition.y)/30;  
     addClick(mouseX,mouseY); 
}, false); 

document.addEventListener('mousemove', function(e) { 
    if(isMouseDown == true) 
    { 
     isMouseMoving = true; 
     e.preventDefault(); 
     mouseX = (e.clientX - canvasPosition.x)/30; 
     mouseY = (e.clientY - canvasPosition.y)/30; 
     addClick(mouseX, mouseY, true);   
    } 
}, false); 

Vielen Dank für Ihre Hilfe.

Antwort

0

Es gibt keine Möglichkeit, eine Linie zu zeichnen, die in allen Browsern funktioniert. (außer geraden vertikalen und geraden horizontalen Linien.)

Ich schlage vor, dass Sie eine Grafikbibliothek wie raphael verwenden.

Edit: hier ist die raphael Website: http://raphaeljs.com/

+0

Ich brauche die box2dweb Kollision Physik an der Linie I so Quadrate die Linie abprallen ziehen hinzuzufügen. Ist das mit Raphael möglich? – oasisfleeting

+0

Sieht so aus, als würde box2dweb nur Physik machen, und raphaeljs nur Grafiken. Ihre Aufgabe ist es, sie zusammen zu kleben. Ich denke nicht, dass Open-Source-JavaScript-Spiele-Engines gerade so weit sind. – JasonWoof

Verwandte Themen