问题标签 [side-scroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
466 浏览

java - java中的2d横向滚动条移动背景

我一直在学习 java 中的 2d 侧滚动条教程,并且已经掌握了基础知识,我稍微更改了代码以使其始终移动瓷砖和背景,这符合我的预期。相关代码如下:

在字符类中:

在瓷砖类中:

我想要一种方法,这样如果角色向左移动,瓷砖+背景移动得更慢。我在变量范围和 setter/getter 方面遇到问题。在主游戏类中,我有代码:

我如何在 tile 类中包含一个 if 语句,该语句读取角色是否向左移动(由主游戏类中的 keyPressed 事件确定)并相应地调整图块的速度?

我想写一些大意为:

显然这不起作用,任何人都可以提出一种方法来实现这一点吗?如果需要,我可以提供更多信息。

0 投票
1 回答
1361 浏览

animation - Unity:使用 InputManager(侧滚动条)时更改方向字符面

我正在与几个使用 Unity 的人一起创建一个简单的横向滚动条,我绝对是个初学者。正在使用的角色是 3D 并且可以很好地向前跑,但是当向后跑时,他仍然面向前方。我在 InputManager 中设置了控件,因此按 A 向后移动,D 向前移动,但我不确定该怎么做,所以他面对各自的动作。

任何帮助将不胜感激,如果您需要除了以下代码之外的更多信息,请告诉我,它基于我发现的另一篇文章。

我遇到的另一个问题是让两个不同的动画能够同时工作,比如跑步和攻击。我想我应该在我在这里的时候提一下,如果有人知道该怎么做的话。再次感谢您的宝贵时间!

0 投票
1 回答
13387 浏览

javascript - 如何在 Phaserjs 中制作无限侧滚动背景?

我正在使用 phaser.js 制作游戏,但我找不到任何关于如何使背景无限滚动的教程。我希望背景可以横向平铺/重复,并且在角色向右移动时无限重复。

我目前正在使用相机并让相机跟随角色。

以下是我的想法:在 中不断检查相机的位置update(),然后将其与当时的角色一起移动到游戏的开头(最左边)。我认为这可能不是一个平稳的过渡,所以我想知道是否有更好的方法来做到这一点。

0 投票
1 回答
191 浏览

actionscript-3 - AS3 碰撞检测 - 跳跃将角色推过地板

Wellp,我到处都看了,我和他们一样绿色..

我最近开始玩 AS3,因为我想学习它,所以我开始构建一个简单的平台游戏交易。

我想我知道我的问题是什么,但找到解决方案已经花了半天时间。

http://sta.sh/0ucxs1xjaua

据我所知,这是玩家位置计算/帧率的问题。在程序计算他相对于地板的位置之前,角色已经走得太远了,当它最终识别出他在哪里时,它开始重新校准,将他带回零。

我的特殊问题是每个制作教程和东西的人都使用不同的标签系统,我找不到任何适合这个特定问题的东西。

所以请原谅我的提问,但是是否有人可以检查我的代码并帮助我找出问题所在。感觉跟这个有关系

if(downBumping) 位,但我正在努力弄清楚要改变什么以及如何改变。:\

这是代码:

任何帮助将非常感激。我想学习,但是当我什至不知道到底要寻找什么时很难。非常感谢!

0 投票
1 回答
103 浏览

javascript - 在 JavaScript 中的对象数组中查找数字的快速方法

我需要检查一个物体是否在远处以将其显示到屏幕上(它是一个横向卷轴视频游戏)

到目前为止,我有这个:

其中 worldObj.distance 是玩家走过的距离,obj.distance 是物体的距离。

问题:

由于关卡中的硬币数量(超过 10,000 个),此 for 循环会导致移动设备上的性能大幅下降,并且每秒执行 60 次(60 fps)

我怎样才能解决这个问题?

谢谢!:)

编辑:尝试在循环之前将 canvas.height 缓存到变量中(例如: var height = canvas.height; )。没有性能差异(I5 2500K 上的 44 毫秒与 44 毫秒,想象一下在移动设备上!!)。

编辑:尝试在循环之前缓存 Coins.length,(例如: var len = Coins.length; )。没有性能差异(44 ms vs 44 ms)。

编辑:这就是我创建硬币的方式:

0 投票
0 回答
180 浏览

actionscript-3 - Flash CS6 AS3:为什么碰撞是瞬移而不是阻塞

所以我不知道如何表达这个问题 - 如果有人有更好的想法,请随意:)

但本质上,我的横向卷轴的碰撞行为很奇怪。我_boundaries在开始位置的左侧有一个“边框”框 ( ),以防止字符在开始时向左移动。以前,它工作正常(但是其他东西坏了)。在修复了许多其他碰撞问题(IE 从地板上掉下来、卡在地板上、重力表现异常)之后,左侧碰撞大部分时间都停止了工作。

如果您从超过 5-10 像素处撞到墙上,您将不会被阻挡/阻止移动,而是会“传送”到墙的顶部并继续前进。如果您接近 5-10 像素并开始移动,您将被阻挡。我已经为布局提供了一张图片(通过链接)。

但是如何修复我的横向卷轴代码,以便墙总是阻塞(没有一个可笑的巨大碰撞框/区域)。或者,有没有更好的方法来处理我所有的碰撞?

http://i.imgur.com/orvErfQ.png

碰撞代码:

运动代码:

它被使用的地方:

0 投票
1 回答
392 浏览

actionscript-3 - AS3 是什么导致横向滚动条滞后?

我一直在根据书中的教程编写横向滚动条。我的朋友也这样做了,他的工作很完美。

我只是真正改变了一些变量名称(我也做了不同的动画),但由于某种原因,当我的角色移动时,会有很大的延迟。

然而,只有在舞台上有“墙”时才会出现滞后。当我滚动过去时,滞后消失,然后返回。

Walls 和 Floors 都使用相同的代码(它们都被分配为“floorObjects”变量)并使用相同的碰撞代码,但是我无法弄清楚为什么会涉及延迟。

如果角色向左移动,则从角色开始的位置(大约 60 倍)开始,会有大量的滞后。如果我向右走,则不会有太多延迟,直到屏幕开始滚动。

我认为向左移动的滞后可能与程序阻止滚动地图等有关。但我无法弄清楚为什么尝试向右移动时会出现滞后。

我已经列出了滚动代码和主循环,如果需要,我可以上传冲突代码,任何帮助将不胜感激。

滚动代码;

主循环:

更新:

所以我“分析”了它,大部分时间都花在 MoveCharacter() 函数中,使用 gotoAndStop() 命令。所以我删除了它,它没有任何区别,仍然滞后。然后我也移除了敌人,仍然滞后。但是将质量降低到低质量已经以某种方式解决了它(尽管现在质量很差)关于导致延迟的原因以及如何解决它的任何想法?

0 投票
1 回答
1799 浏览

javascript - 循环精灵滚动背景

我是 WebGL 的新手,我决定尝试 Phaser.js 库。

我在背景滚动时遇到了一些问题(像跑步者和侧滚轴这样的游戏)。我已经看到它在 PIXI.js 中是如何工作的,但我无法为 Phaser 做/找到解决方案。

Pixi.js 代码。

0 投票
1 回答
296 浏览

actionscript-3 - 闪存 AS3;如何播放整个动画然后停止

我目前正在尝试制作“攻击”动画。但是必须有一个冷却时间(大约 2-3 秒)。

虽然我可以做到这一点,但我目前遇到的问题是动画被切断了。我所追求的是完整播放的动画,然后倒计时开始。

我尝试使用自定义调度事件。但是,因为对象被放入数组中。我尝试在其他地方遵循一些建议,但似乎没有一个有效。如果我在将对象推入数组后立即尝试添加事件侦听器,我要么得到错误"A term is undefined and has no properties"(IEenemy [i].addEventListener(...))

或者,"addEventListener is not a function"如果我尝试将侦听器添加为对象的变量,则会出现错误(IEenemy.addEventListener(...);)

我还尝试了使用 while 循环的更简单的方法(AI 发起攻击,触发 while 循环,增加一个整数直到达到 100 左右,然后退出并重置为 0。在 while 循环期间,布尔值是否AI/角色可以攻击是假的。当它退出时,它也会重置为真)但问题是,它切断了动画。

如果对如何对攻击速度进行简单的冷却有任何建议,请提供帮助。我已经发布了我认为相关的程序部分(包括创建敌人并推动它,人工智能如何确定它是否攻击,以及涉及攻击的部分等);

确定人工智能做什么;

执行攻击;

0 投票
1 回答
562 浏览

cocos2d-iphone - Cocos2d V3 - 获取当前精灵位置?

可能是一个很简单的问题!我正在使用 Xcode5 和 Cocos2d 版本 3 制作横向卷轴射击游戏。

当主角(屏幕左侧)上下飞行时,我希望敌人(屏幕右侧)沿 Y 轴跟随他。

我设置了一个动作,让敌人进入,然后移动到主角的 Y 位置。但是敌人会移动到主角开始的 Y 位置,而不是当前的 Y 位置。

是否有获取精灵当前位置的代码?还是有更好的方法来实现这一目标?基本上我们希望敌方精灵知道主角 Y 的位置并不断移动到它。

谢谢