首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Box2dweb绘制静态线

Box2dweb绘制静态线
EN

Stack Overflow用户
提问于 2012-04-02 09:05:49
回答 1查看 391关注 0票数 0

我正在使用box2dweb构建一个小的html5游戏。我试图在mousedown + mousemove上画一条线。这些线条将捕捉掉落的方块,目标是将方块从页面两边的孔中反弹出来。

我所能做的就是沿着mouseX和mouseY绘制几个方块来模拟一条实线,但我觉得这还不够。谁能帮助我理解如何绘制符合所需线条形状的实线或单个多边形?

正在进行的工作在这里http://acoolsip.com/html5/mobile/

目前处理mouseclick、mousemove和线条绘制的方法都是这些函数。

代码语言:javascript
复制
    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);

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-04-02 09:32:18

没有办法画出适用于所有浏览器的线条。(垂直直线和水平直线除外。)

我建议你使用像拉斐尔这样的图形库。

编辑:这是拉斐尔的网站:http://raphaeljs.com/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9969810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档