【问题标题】:HTML5 game scrollingHTML5 游戏滚动
【发布时间】:2014-07-01 12:20:11
【问题描述】:

所以我在这里,正在制作一个 HTML5 和 javascript 游戏,我试图让角色走到屏幕中间,停止滚动,然后在相机碰到屏幕边缘时继续行走。

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 };

(世界是背景图像的容器。)

只要你不在屏幕边缘附近转身,它就可以正常工作,因为它只会向前跳到屏幕中间,然后从那里开始。

这个问题的答案可能非常明显,但我这辈子都想不出来,如果我在这里听起来很愚蠢,很抱歉。

任何形式的帮助都将不胜感激,因为我已经坚持了一段时间了。

提前致谢!

【问题讨论】:

  • 你的意思是移动相机like this?请原谅项目的代码质量,它非常古老且未完成:P
  • 好吧,这不是让相机移动,而是让角色在相机内移动。我应该把它做成一个 gif。

标签: javascript html canvas scroll


【解决方案1】:

以 Simon Sarris 的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);
}

本质上,这只是检查对象是否在“世界宽度”的一半屏幕内。如果不在其中,它会通过翻译上下文来移动“相机”。如果在该范围内,则根据未满足的要求保持固定位置。

希望对你有帮助!

【讨论】:

  • 啊,我似乎无法让它工作。我正在使用easeljs,并且尝试将这样的东西放入会弄乱我已经拥有的很多代码。也许如果我能找到一种方法来阻止背景移动,直到玩家穿过屏幕的一半,它就会解决它。但我也不知道该怎么做。
  • @puffballinthedark 不幸的是,对于我已经拥有的东西,我无法提供更多帮助。我回答了你提出的问题,提供了一种方法来完成它。没有看到更多的设置没有人可以帮助你
  • 是的,我想通了。我想我只需要考虑更多。无论如何感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2014-03-31
  • 2012-06-16
相关资源
最近更新 更多