我目前正在使用 html5/js 开发游戏,使用 box2dweb 进行碰撞,但我遇到了需要与玩家一起滚动关卡的问题。Box2d 直接渲染到 2d 上下文,所以我认为在当前状态下没有办法移动画布的渲染部分?
在 as3 中,您可以将所有内容放在一个影片剪辑中并相应地更改其位置。
那么,无论如何都可以控制某种相机或画布对象的渲染部分来移动它的“位置”以始终保持玩家居中?
提前致谢,
M0rph3v5
Box2D 本身不绘制任何东西,它只是计算位置/碰撞。
它提供了所谓的“调试绘图”,但它的目的是……调试。无论如何,您可以从那里开始添加所有需要的功能。
是的,我想,原来我必须在 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 处绘制实际的汽车精灵(以汽车大小为中心)。