Articles of 成熟

有没有简单的方法来绘制我需要的瓷砖?

我正在制作一个平台游戏,这个游戏将会有一个随机生成的地图,并且在三个方向上是无限的:左,右,下。 我发现我需要把这个世界分成几块,否则就不可能完成。 每个块目前由512×512的瓷砖组成。 (这可能会在将来发生变化。)游戏将会检查每个块上的设定点,以检查玩家正在前进的方向是否存在块。 如果没有,则会生成一个(或多个)。 如果有的话,它会被加载到内存中。 现在,我的问题是,如果我有一个大块,我靠近它的左下角。 如果相机向左下方移动,我将会相交3个块。 我唯一的select是从每个块计算拼贴,并确定他们需要在屏幕上绘制的位置? 这似乎是一个有点麻烦的问题来处理。 如果这是唯一的方法,我想我将别无select,只能解决它,但我想知道是否有一个替代解决scheme。

如何在简单的2D平台上使用摩擦来使物体停下来?

我正在编写我正在做的一个小平台的物理学,但我不知道如何devise一个摩擦计算,做我所期望的。 当我沿着一个平台奔跑的时候,我希望玩家的角色能够提高速度,但是由于摩擦阻碍他们的移动,所以不能太快。 然后,如果他们停止跑步,我希望他们继续跑一点点的速度成正比(如果他们慢下来,他们应该立即停止)。 void Update(V2!float forces, Elapsed time){ position += (velocity * time.deltaS); forces -= 0.5 * velocity^3; //friction??? velocity += (forces * time.deltaS); } 力量variables包含加速对象的任何东西,比如重力,或者玩家击中方向键的加速度等等。不断发生的事情是,无论我尝试插入什么样的摩擦都不会使物体移动到一个很好的干净停止。 它会看起来像停止,但之后移动一个或两个像素,因为它的速度虽然很小,但几秒钟不会达到零。 我可以用一堆条件语句来解决这个问题,但是如果有一个简单的解决scheme,我宁愿这么做!

在一个声波式的平台游戏中,如何判断字符是否颠倒?

在一个声波式的平台游戏中,你怎么知道玩家的角色目前是否倒过来? 假设角色正在向左边跑: 在某个时候,角色会开始按照天花板运行。 因为字符既触摸了隧道的天花板也触摸了地板,所以我怎么跟踪呢? 我需要一些方法来知道角色的脚在哪里,跟踪它,并让角色在弯曲的表面快速移动时改变。

需要一些关于如何决定在哪里实施我的敌人行为的建议

我正在使用C#编写Unity平台游戏。 我有我的角色,如果他按下踢button他的状态切换踢。 在这个“踢”状态中,角色实际上并没有做任何事情,他只公开暴露kickForce等脚步信息。 然而,敌人在更新function时会检查球员是否有踢球价值,如果球员是敌方球员并且在球员踢球的范围之内,那么敌人就会对自己施加压力。 所有这一切都很好,但我一直在考虑未来的不同敌人types的实施,如果我想实现其他types的行为不相同的敌人,相同的脚本将无法正常工作。 对我来说,这是无意义的,我的一部分人认为踢球行为应该在球员阶层中,他应该检索踢球区域内的所有敌人,并通过某种KickObject方法运行它们。 然而,这是我的问题,我不确定这样做的最干净和最直接(而且容易扩展)的方式。 在执行游戏的结构方面,我一般都有这个问题,我不知道最好的答案,而且我觉得,当我计划一些事情的时候,他们比我原来计划的要复杂得多,我已经到位的结构开始分崩离析。 任何意见在这个问题将不胜感激。 TL:DR – 对于踢敌人,如果玩家的行为是应用的,或者是每个拥有自己“被踢”代码的敌人的方法,那么这样做更好。 一般游戏开发代码结构问题。

AS3中的基于图块的地图

我想在AS3中制作一个基于磁贴的平台。 我希望我的游戏能够读取外部地图文件(以xml或json或类似的方式)来绘制基于图块的地图。 我已经在AS2和其他语言中看到过大量的教程,而我在AS3中发现的很less的教程不完整,或者充满了额外的不必要的特性。 我只是想能够从Flash中的精灵绘制一个基本的地图。 任何链接或信息指向我在正确的方向将不胜感激。

平台变形碰撞检测顺序

我试图创建一个2D平台游戏,我遇到了我已经实现的物理上的困难。 每个循环我的代码执行以下操作: 将物理应用到临时的X和Y坐标以find玩家的新位置 在精灵周围生成点来检查碰撞并为它们指定方向(这允许基于碰撞的方向进行碰撞校正) 循环遍历每个点,find每个点的Tile并检查它是否是固体。 如果是这样,那么标记该方向(与之前创建的点相关的方向)为固定。 检查完所有点后,如果没有检测到该方向的碰撞,则仅将物理应用于X和/或Y. 我的代码简化如下: var tileWidth = 8, // Tile Width/Height gravity = 0.3, // Map Gravity friction = 0.8, // Map Friction speed = 10, // Get the Users Speed xVelocity = 0, // Get the Players X Velocity yVelocity = 0, // Get the Players Y Velocity x = […]

使用Box2D处理平台游戏的最佳方式是什么?

我想知道是否有任何已知的解决scheme,使用Box2D引擎处理玩家在斜坡上的移动。 我试图用一个圆圈作为玩家。 一切都很好,直到我试图走在斜坡上,主要问题是,由于重力,圆不停止在斜坡上。 如果有人试过这个,我会感激不尽。 如果你有一个更好的解决scheme,没有物理引擎也可以。 谢谢。

将平台游戏组织成课

我正在制作一个成熟的游戏,而且我在围绕如何组织我的课程方面遇到了一些麻烦。 我想知道什么是最好的方式来进行交互,而不是传遍整个地方的参数。 我听说过MVC,但这是否适用? 我应该更多地考虑一下吗? 提前致谢

重力大于平铺尺寸的平台重力引力

我正在制作一个简单的基于网格平铺的一些基本的物理平台。 我有16px的瓷砖,在玩重力之后,似乎为了得到一个很好的马里奥般的跳跃感觉,玩家最终在地面上以每秒16px的速度移动。 问题是他们在检测到碰撞之前通过第一层瓷砖。 然后,当我将玩家移动到碰撞砖的顶部时,他们移动到最底部的砖。 我试图限制他们的最大速度小于16px,但它看起来不正确。 有没有解决这个问题的标准方法? 谢谢。

在Box2D中检测窗台

可能重复: 在Farseer中检测开放空间 我如何检测壁架? 我正在用Box2D制作2D平台。 玩家需要能够抓住窗台并拉上自己。 现在我有一个传感器,从玩家身体的上半部分向每个方向延伸。 逻辑似乎很简单:如果传感器内部有瓦片,上面有空的空间,那么这是一个窗台,游戏应该相应地进行。 问题是我无法弄清楚如何用Box2D实现这个逻辑。 有人有主意吗?