Questions tagged «2d»

2D是指二维空间,其中的坐标用X和Y值表示。

2
在2D平台游戏中,如何确保玩家在斜坡上平稳移动?
我正在为2D平台游戏开发物理引擎。我正在使用分离轴定理进行碰撞检测。地面是由定向包围盒构成的,播放器是与轴线对齐的包围盒。(具体来说,我使用的是《实时碰撞检测》一书中的算法,该算法使用SAT对OBB执行扫掠碰撞检测)。我在碰撞响应中使用了一个很小的(接近零)恢复系数,以确保动态对象不会穿透环境。 该引擎通常运行良好,只是我担心可能会出现的一些极端情况。例如,在图中,A,B和C是地面。玩家沿着B向A左转。在我看来,由于不准确,玩家方块在继续向上和向左移动时可能会略低于方块B。因此,当到达A时,玩家的左下角可能会与A的右侧发生碰撞,这是不希望的(因为这样做的目的是使玩家在A的顶部上方平稳移动)。当玩家位于方框C的顶部,向B的左侧移动时,似乎会发生类似的问题-B的最极端点可能会与玩家的左侧发生碰撞,而不是玩家的左下角在上下滑动B以上 Box2D似乎通过存储其边缘形状的连接性信息来解决此问题,但是我不太确定它是如何使用此信息来解决问题的,并且在查看代码后,我并没有真正掌握它的作用。 任何建议将不胜感激。
18 2d  physics  platform 

1
如何为级别中定义的对象实现持久状态?
我正在开发2D Metroidvania,它由一系列相互关联的关卡组成,可以重新访问。 每个级别都由Tiled TMX文件表示,在该文件中,我指定了生成不同sprite类的各种对象的位置(例如,敌人,拾取器,控制杆等)。开始新游戏,加载已保存的游戏或更改级别时,我的游戏循环遍历相应的TMX文件并生成该级别中的所有对象。 我通过以下方式处理级别更改:如果Player对象与对象相交Portal,change_map()则调用一种方法,该方法加载新地图(与相交的门户相关联的地图)并将玩家定位在新地图上的适当位置。 我的某些对象具有一些状态,希望通过更改级别以及保存和退出游戏来保持这些状态。例如,如果玩家解锁门,并且门的状态属性设置为“打开”,则我希望玩家返回时将门打开。我想要类似的东西,可以将其设置为左或右,以及其他各种对象。此外,玩家有时会收集一些我不想在玩家重新访问该区域时重生的物品。 因此,我的问题是如何处理这种持久性? 我正在使用Python,尽管我认为您可以从中抽象出来。

1
Unity 2017.2 Tilemap的大小限制是多少?
我一直在研究Unity 2017.2的Tilemap功能的文档。 Unity是否会限制将为特定tilemap网格支持的最大tile数量? 我知道每个图块都实例化一次,并在运行时用于纹理化Tilemap网格上的四边形,因此我猜想网格四边形的数量限制最终取决于硬件,或多或少都很高。 这是正确的假设,还是引擎上有严格的上限?
17 unity  2d  tilemap 

1
快速,准确的二维碰撞
我正在研究2d自上而下的射击游戏,现在需要超越基本的矩形边界框碰撞系统。 我有很多不同类型的精灵,它们都有不同的形状和大小。精灵的纹理都是具有透明背景的正方形png文件,因此,我还需要一种方法,仅当播放器进入纹理的彩色部分时才发生碰撞,而不是透明背景。 我计划按以下方式处理碰撞: 检查精灵是否在播放器范围内 进行矩形边界框碰撞测试 进行准确的碰撞(需要帮助时) 我不介意先进的技术,因为我想在考虑所有需求的情况下做到这一点,但是我不确定该如何处理。尝试什么技术甚至库。我知道我可能需要创建并存储某种形状,以精确表示每个精灵减去透明背景。 我已经读过每个像素很慢,所以鉴于我的物体水平和数量很大,我认为这不合适。我也看过Box2d,但找不到太多的文档,也没有找到有关如何使用SFML进行安装和运行的任何示例。

1
如何创建“ 2.5D”艺术品?
“ 2.5D”是指过山车大亨,帝国时代2或辐射1和2等游戏中的艺术风格: 游戏中的所有内容似乎都是使用类似“像素艺术”的工具创建的。我对么? 但是如何创建运动角色?以AoE2为例:在我的童年大部分时间里,我坚信士兵,村民和其他角色都是3D! 有人可以解释: 字符的尺寸是多少? 我可以使用哪种软件包来创建它们?
17 2d  art  rts  2.5d 

5
伪造3D的示例
有谁知道3D在2D中被伪造的好例子(不一定是代码,但我可以查询游戏)?玩家的观点是,他们正在“进入”屏幕,并且有东西正在向他们涌出。此刻,我只是在缩放2D敌人,以使他们觉得他们越来越近,但感觉仍然很平坦。关于在不实际使用3D引擎的情况下如何给予更多3D幻觉的提示? 编辑:刚遇到术语“ Mode7”,该视频几乎显示了我要弄清楚的内容。(尤其是0:13和1:03的比赛)。什么是实现这样的好方法?


2
如何使用点积获得两个向量之间的夹角?
我正在学习在游戏中使用归一化向量。 我了解到,为了知道两个向量之间的角度,我可以使用点积。这给我一个介于-1和1之间的值,其中 1表示矢量平行并且面向相同方向(角度为180度)。 -1表示它们平行且面对相反的方向(仍为180度)。 0 表示它们之间的角度为90度。 我想知道如何将两个向量的点积转换为以度为单位的实际角度。例如,如果两个向量的点积为0.28,则0和360度之间的对应角度是多少?

1
可以使用Unity 2D制作像素艺术游戏吗?
我正在查看Unity 4.3中引入的新2D功能,我想我可能会遗漏一些东西。 在我看来,它们似乎是为高分辨率2D游戏而设计的,在这些2D游戏中可以缩放精灵,但不适用于像素艺术游戏。 像素级精灵设计为在屏幕上精确显示1:1像素:缩放会破坏它(线性缩放是一个例外,即可以将其缩放2倍,3倍,4倍等)。 但是我找不到“按原样显示”的方法,显然Unity坚持将其缩放到它认为合适的任何分辨率:我可以控制Sprite的Camera.size参数和“ pixels to units”参数,但我未能获得此结果。
16 2d  unity  sprites  pixel  pixel-art 

5
对于触摸设备上的2D平台器,合适的输入方法是什么?
我正在创建一个2D平台游戏,例如Super Meat Boy,在该游戏中,主角的动作精度至关重要。我正在使用libgdx。PC上的键盘控件工作正常,但是在加速度计处理方面,要精确处理字符确实非常困难。随着交通安全路线的拥挤,这种情况会逐步恶化。我曾考虑实现一个屏幕上的模拟球来处理输入,但在互联网上却读到了很多不良后果。 用于触摸设备上的平台游戏的直观但精确的输入方法是什么?
16 2d  input  touch  multitouch 

1
一个简单的2D矩形碰撞算法,该算法还可以确定矩形碰撞的边?
我最初尝试实现矩形相交,效果很好。但是,当我必须应用物理系统(例如速度,加速度和方向矢量)时,我将不得不找到一种方法来确定矩形的哪一侧发生碰撞。现在,在我的系统中,没有旋转的矩形,因此这简化了问题。但是,我找不到确定哪个矩形边发生碰撞的简便方法。我曾经处理过这个问题,但失败了。 我过去所做的是确定每个平行矩形边之间的距离,并检查该距离是否接近0(使用一些初始定义的距离范围)或为0。但是,对于浮点算法,这证明是不稳定的,因为未知时间的流逝。有时,这些矩形实际上会在满足定义范围之前相交。 另一方面,我正在考虑生成多个矩形,每个矩形各边。但是,再三考虑之后,将其与平行边进行距离范围检查是一样的,只是该距离范围就是每个微型矩形的宽度。 因此,对这个问题有什么建议吗?

3
我可以在2D游戏中实现手电筒效果(光源周围较亮的区域)吗?
我正在考虑为自己编写一个简单的2D游戏。起初它不会以完美的图形或游戏玩法发光,但我认为这是我进行PC游戏开发的第一步。因此,请想象一下这样简单的基于Sprite的2D游戏(例如Heroes IV或Startcraft BroodWar)。 我希望游戏能够支持白天/夜晚进行相应的灯光更改,同时又不得不为每个灯光细微差别创建子画面。因此,我决定在其他对象之上添加一个半透明层就足够了。 该解决方案的问题是,如果我在游戏中有一个光源对象(例如戴着火炬的英雄或正在燃烧的建筑物),那么它周围一定有一个较亮的区域,对吗?由于我将我的半透明层覆盖在所有内容上,您如何建议实现我想要的火炬视觉效果?也许根据光照效果重画该图层以添加“空白”或不同颜色的区域?
16 2d  lighting 

4
在2D游戏中使用3D引擎的利弊是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 3年前关闭。 在决定2D游戏引擎(例如Slick2D / Flixel / FlashPunk)和3D引擎(例如Unity)进行2D游戏开发时,初学者应该注意哪些利弊? 尽管我过去曾涉猎Game Maker,Flash和XNA,但我才刚刚开始从事独立游戏开发。我听说过很多有关Unity的正面信息,它的跨平台特性使其更具吸引力,但据我了解,它是3d引擎的核心。 对于严格的2d游戏,是否有令人信服的理由使用Unity等3d引擎?还是会为我的初次学习体验增加不必要的复杂性?
16 2d  3d 

3
按顺时针顺序对点数组进行排序
有没有一种算法可以按顺时针顺序对2D点数组进行排序? 在我的情况下,我专门处理直角三角形,所以只有3分。 但是我有兴趣知道是否存在这样的算法,如果不存在,那么按顺时针方向返回三角形的3个点的简单方法是什么? 编辑:我正在尝试相对于多边形的质心顺时针计算点,它是凸的。 更新: 这是我根据选择的答案最终使用的实现,它对性能没有要求,只是偶尔发生一次,因此可以解决。 ArrayList<PVector> pointList = new ArrayList<PVector>(); pointList.add(A); pointList.add(B); pointList.add(C); Collections.sort( pointList, new TriangleVectorComparator(origin) ); return pointList; // Comparator package triangleeditor; import java.util.Comparator; import processing.core.PVector; public class TriangleVectorComparator implements Comparator<PVector> { private PVector M; public TriangleVectorComparator(PVector origin) { M = origin; } public int compare(PVector o1, …

5
为2D游戏创建地图的最佳方法?
对于主观的“最佳”关键字,我深表歉意。 我和我的朋友已经开始创建2D冒险游戏。它是自上而下的口袋妖怪或塞尔达风格(只是透视图)。我们一直在讨论创建一个大型世界地图的方法,玩家可以在不拖累我们机器的存储能力的情况下进行遍历。 我们的第一个冲动是在要加载内容的播放器周围创建一个大地图和一个圆圈。我们认为这不会持续很长时间,因此决定将地图划分为多个部分。首先,我们有四个大的部分,但是意识到我们可以将其分解为许多小部分。 我从SNES播放了一些《塞尔达传说》,发现在移动地图期间,此时可以加载内容。我的意思是,我们不只是检查矩形区域中要加载的数据,而是将地图分割成许多微小的块,以便在从地图部分移动到地图部分时加载和卸载数据。 今天,他告诉我他想创建一个简单的2D数组贴图[WIDTH] [HEIGHT],其中包含游戏中每个网格的数据,并且是我们不需要的数据的恒定保存到磁盘的操作。 我不确定这些想法,并认为我可能会在这里。与该主题有关的任何链接,资源或教程都将不胜感激,并且可以直接回答我们有关如何有效实现的问题。
16 game-design  2d  tiles  maps 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.