Box2dweb Рисование статической линии - PullRequest
0 голосов
/ 02 апреля 2012

Я создаю небольшую html5 игру с использованием box2dweb.Я пытаюсь нарисовать линию на mousedown + mousemove.Эти линии поймают падающие квадраты, и цель состоит в том, чтобы отскочить квадраты от отверстий по обеим сторонам страницы.

Все, что я смог сделать, это нарисовать несколько квадратов вдоль mouseX и mouseY для имитациисплошная линия, но я не чувствую, что этого достаточно.Может ли кто-нибудь помочь мне понять, как нарисовать сплошную линию или отдельный многоугольник, который соответствует форме желаемой линии?

В процессе работы здесь http://acoolsip.com/html5/mobile/

в настоящее время методы, которыеобрабатывают щелчок мышью, перемещение мыши и рисование линий.

    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);

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 02 апреля 2012

Нет способа нарисовать линию, которая работает во всех браузерах.(кроме прямых вертикальных и прямых горизонтальных линий.)

Я предлагаю вам использовать графическую библиотеку, например, Raphael.

Редактировать: вот сайт Raphael: http://raphaeljs.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...