我目前正在开发一个使用html5/js的游戏,使用box2dweb进行碰撞,但我遇到了一个问题,我需要用玩家滚动关卡。Box2d直接渲染到2d上下文中,所以我认为在它的当前状态下,没有办法移动画布的渲染部分?
在as3中,你可以把所有的东西都放在一个电影剪辑里,然后相应地改变它的位置。
那么,有没有可能控制某种类型的相机或画布对象的渲染部分来改变它的“位置”,使玩家始终居中?
提前谢谢你,
M0rph3v5
发布于 2011-05-08 16:43:23
是的,我想,原来我不得不在调试绘图之前使用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处绘制实际的汽车精灵(以carsize划分为中心)。
发布于 2011-05-08 07:31:15
Box2D本身并不绘制任何东西,它只是计算位置/碰撞。
它提供了所谓的“调试绘图”,但它的目的是...调试。无论如何,您可以从那里开始添加所有需要的功能。
http://code.google.com/p/box2d/wiki/FAQ
https://stackoverflow.com/questions/5922975
复制相似问题