所以我在这里制作一个HTML5和javascript游戏,我试图让角色走到屏幕中间,停止滚动,然后在相机碰到屏幕边缘时继续走路。 / p>
http://gifmaker.me/PlayFrameAnimation.php?folder=20140629160DoiXmJ9u4hISNMxDsnhUI 喜欢这件事。
if (world.regX > 0 && world.regX < backgroundEdge-camera.width && jerome.x > camera.width/2) {
jerome.x = camera.width/2 };
if (world.regX > 0 && world.regX < backgroundEdge-camera.width && jerome.x < camera.width/2) {
jerome.x = camera.width/2 };
(世界是背景图片的容器。)
这个工作正常,只要你不在屏幕边缘附近转身,因为它只会向前跳到屏幕中间,然后从那里开始。
这个问题的答案可能非常明显,但我只是想不起它的生命,所以对不起,如果我在这里听起来很愚蠢。
任何形式的帮助都会受到赞赏,因为我已经坚持了一段时间了。
提前感谢!
答案 0 :(得分:0)
使用Simon Sarris&#39; answer作为基础,我想出了this demo
我添加的内容如下:
if(offsetX >= -worldW + can.width / 2) { // Handle right edge
if(offsetX <= 0) { // Handle left edge
ctx.translate(offsetX, offsetY);
} else {
// Do nothing, default position
}
} else {
ctx.translate(-worldW + can.width / 2, 0);
}
基本上,这只是检查对象是否在&#34;世界宽度&#34;的屏幕的一半之内。如果它不在其中,它会移动相机&#34;通过翻译上下文。如果在此范围内,则根据未满足的要求保持设定位置。
希望它有所帮助!