1

我目前正在使用 html5/js 开发游戏,使用 box2dweb 进行碰撞,但我遇到了需要与玩家一起滚动关卡的问题。Box2d 直接渲染到 2d 上下文,所以我认为在当前状态下没有办法移动画布的渲染部分?

在 as3 中,您可以将所有内容放在一个影片剪辑中并相应地更改其位置。

那么,无论如何都可以控制某种相机或画布对象的渲染部分来移动它的“位置”以始终保持玩家居中?

提前致谢,

M0rph3v5

4

2 回答 2

2

Box2D 本身不绘制任何东西,它只是计算位置/碰撞。

它提供了所谓的“调试绘图”,但它的目的是……调试。无论如何,您可以从那里开始添加所有需要的功能。

http://code.google.com/p/box2d/wiki/FAQ

于 2011-05-07T23:31:14.740 回答
1

是的,我想,原来我必须在 debugdraw 之前使用context.translate来“转移”一切。现在可以很好地工作了。

编辑:

我目前使用的代码

            context.save();
            context.translate(-1*xpos+(canvas.width/2),-1*ypos+(canvas.height/2));
            context.rotate(cars[carid].angle);
            context.drawImage(carSprite, -carspritewidth/2, -carspriteheight/2); 
            context.restore();

其中 xpos 和 ypos 是汽车的 x 和 y 位置,之后我只在 0,0 处绘制实际的汽车精灵(以汽车大小为中心)。

于 2011-05-08T08:43:22.727 回答