0

我正在尝试使用 box2d 和 crafty.js 绘制一个简单的圆圈,但我似乎无法绘制它这是 jsfiddle:http: //jsfiddle.net/B5UsC/2/

看看这部分代码:

var ball = Crafty.e("2D, Canvas,Color, Box2D,ball")
                .attr({ x: 10, y: 15, z:5 })
                .color("#fff")
            .box2d({
                bodyType: 'dynamic',
                density: 1.0,
                friction: 2,
                restitution: 0.2,
                shape: 'circle'
            }).onContact("Floor",
                        function (data) { 
                        alert("Hi");
                        });

奇怪的是,它alert被执行了,但球没有出现。我错过了什么请帮忙

4

1 回答 1

3

外部资源

Box2dWeb-2.1.a.3.js

box2d.js

狡猾的.js

这指向一个不可用的页面,这就是它在小提琴中不起作用的原因


尝试下载源代码CraftyJSBox2dwebBox2d

试试看这是否适合你。

好的,我让您的代码正常工作,看来参考库 Crafty+box2d 是制作乒乓球游戏的用户制作的模组。

您忘记将宽度w和高度h属性放在球对象的 .attr 中。

        var ball = Crafty.e("2D, Canvas,Color, Box2D,Ball")
            .attr({ x: 10, y: 15, z:5 , w:25,h:25 })
            .color("#dddddd")
        .box2d({
            bodyType: 'dynamic',
            density: 1.0,
            friction: 2,
            restitution: 0.2,
            shape: 'circle'
        }).onContact("Floor",
                    function (data) { 
                    alert("Hi");
                    });

另一方面,如果您希望框轮廓吃掉圆圈,请删除,color字符串参数中的文本Crafty.e并删除 .color 属性

        var ball = Crafty.e("2D, Canvas,ball, Box2D,")
            .attr({ x: 10, y: 15, z:5 , w:25,h:25 })

        .box2d({
            bodyType: 'dynamic',
            density: 1.0,
            friction: 2,
            restitution: 0.2,
            shape: 'circle'
        }).onContact("Floor",
                    function (data) { 
                    alert("Hi");
                    });

希望这可以帮助 :)

于 2014-07-25T07:11:41.273 回答