Questions tagged «2d»

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

6
2D行星纹理的3D幻觉
几年前,我无意间听到了一种使用2D纹理为用户提供旋转行星幻觉的技术。鉴于用户无法更改其位置或视口。 这种技术叫什么名字?
10 2d  3d  terminology  planet 

4
查找导弹和位图地形的交点的最有效方法是什么?
在回答了我先前关于查找2D位图地形的坡度的问题后,我现在需要了解在导弹上击中的2D地形上找到点的最佳方法。显然,我可以看到导弹下方是否有任何像素与地形相交,但是可以说它已经深入到地形中。 返回到最初碰撞位置的最佳方法是什么?我可以一次将X像素移回导弹的先前位置,但是X的一个好值是多少?还有更聪明的方法吗?也许移动一半的距离,然后移动四分之一,等等?

4
Box2D检查点是否与物体相交
有没有办法检查一个点是否与物体相交? 例如,假设世界上有一个身体处于(100,100)的位置。 有没有办法检查(100,100)点是否与该物体相交? 另一个示例与名为“ PHUN”的游戏有关。在PHUN中,您可以单击并拖动身体。您如何检查鼠标点是否与身体相交?
10 2d  physics  box2d 

2
2D游戏和现代OpenGL
前概念 好的,到目前为止,我收集的是: 不要使用固定的管道(已弃用或将要弃用) vbos存储“对象模型”(主要是n个顶点数据) vaos描述了如何放置数据,以便绘图调用知道每个vbo的哪一部分是关于哪种顶点信息的(一个vao可以引用多个vbo,相反则有点困难) 每个绘制调用还将顶点数据发送到着色器 我如何看待3D(可选) 有了这些信息,我可以看到使用现代OpenGL绘制3D复杂对象的效果如何。您基本上是将一堆对象模型(可能来自Blender或其他类似软件)加载到具有局部坐标的VBO中,然后只需为对象的每个实例提供不同的着色器参数(偏移量)即可绘制到世界空间。 问题/问题 但是,在2D中,问题和优先级完全不同。您不需要绘制很多复杂的对象,也不需要复杂的投影矩阵,并且着色器和着色器要简单得多。 用现代OpenGL频繁(实际上经常,基本上每帧)绘制变化的几何形状的最佳方法是什么? 在下面的段落中,您可以看到一些问题的想法(圆形和矩形问题),可以更好地识别我感兴趣的更改类型。 我的尝试(可选) 因此,我开始考虑如何处理在屏幕上绘制基本的2D几何: 正方形:[(1, 0), (1, 1), (0, 1), (0, 0)]在局部空间中为正方形的几何图形加载VBO,然后为着色器提供正方形的实际宽度以及世界坐标和颜色信息 冷却,看起来很容易。让我们转到一个圆圈: 一个圆圈:三角形风扇。精度(顶点数)多少?对于小圆圈,精度必须较低,对于错误环,精度必须较高。显然,加载1个VBO可能无法满足所有情况。如果由于圆的大小被调整为更大而需要增加精度怎么办? 不太酷。让我们移动到稍微容易一点的矩形: 矩形:嗯。没有“常规矩形几何体”。您只需要一个宽度/高度比例即可,但是,如果尺寸改变,每个矩形可能会有所不同。 如您所见,事情从那里走下坡路。特别是对于复杂的多边形等等。 无代码政策:P 我只需要一个大概的想法,不需要任何代码,尤其是C或C ++代码。就像这样说:“使用此顶点数据创建一个VBO,然后将其绑定,...”。
10 opengl  2d  vbo  vao 

4
在基于图块的游戏中查找无遮挡的图块
我正在开发基于2D瓦片的游戏,现在我正在尝试使相当于2D的阴影体积起作用。我在寻找应该投射阴影的表面时遇到了麻烦。从游戏的任何点开始,我都需要找到未被遮挡的面孔或整个瓷砖。 我的问题是,如何在给定一个点的情况下尽快找到这些瓷砖/边缘?

1
在地图上以程序生成的2D弯曲道路
我一直在尝试使用算法为正在开发的游戏自动生成路线图。 我使用“ Kingdom Rush ”游戏作为参考点,因为它们具有一些精美的地图。 我是程序性内容生成的新手,并且想知道这里是否有人有任何指针。我已经尝试过生成随机的道路拓扑,例如,一些入口/源节点,一些内部节点(叉和合并)以及一些出口汇点节点,然后使用图形布局算法根据此信息创建实际的道路图。 这是一个使用Fruchterman-Reingold算法进行道路布局的示例: 蓝色图形使用一些随机生成的Bézier控制点来使边缘看起来不太平直。 这是使用相同算法但使用不同随机数生成的另一个示例: 麻烦的是,大多数结果最终看起来都非常相似,而且我不确定可以添加哪些规则来改善过程生成地图的可控制性和多样性。 任何建议表示赞赏。

1
如何渲染2D自上而下的平铺定向水流?
我正在开发受矮人要塞启发的自上而下的基于图块的相当图形化2D游戏。我现在要在游戏世界中实现一条河流,该河流覆盖许多图块,并且我已经计算出每个图块的流向,如下图所示(每个图块中的红线所示)。 作为图形样式的参考,这是我的游戏当前的外观: 我需要的是一种使每块河砖中的水动画化的技术,以使水流融合到周围的砖中,从而使砖的边缘不明显。 我发现的最接近的示例在http://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/中进行了描述,但我不太了解在能够理解其中发生了什么时?我对着色器编程有足够的了解,可以实现自己的动态照明,但是我无法完全理解链接文章中采用的方法。 有人可以解释如何达到上述效果,还是建议另一种方法来获得我想要的结果?我认为上述解决方案的一部分是将图块重叠(尽管我不确定哪种组合),并旋转用于变形的法线贴图(再次不知道具体细节),而过去我有点迷失了,谢谢任何帮助!

2
如何避免动画师中的意大利面条?
我正在Unity中制作动画,到目前为止我只制作了四个(上下左右),我的动画窗口如下... 问题是,如果我要向上移动,我希望英雄一直保持向上状态,而不要进入“空转”(或者他开始了),但这意味着我有4个空闲位置...并且每个位置都可以转换为“向上”,“向下” ,左或右,并且每执行一次其他操作就会成倍增加... 这让我觉得自己做错了...。 是否有更好的方法在不同动作之间进行转换?
9 unity  2d  animation 

1
在2D物理引擎中,当物体静止时,如何避免无用的碰撞解决方案?
在我正在使用love-2d开发(用于学习)的物理引擎中,我通过以下方式实现了碰撞解决方案: FixedUpdate(dt) // I use fixed timestep foreach collide c1 in allNotStaticColliders c1.integartePhysic // i.e. apply gravitational force.. foreach collider c2 "near" c1 // "near"= I use spatial hashing if collide(c1,c2) resolve collision (c1,c2) // the heavy operation collison callbacks c1 collison callbacks c2 ... 如您所见,在gif动画的末尾,当所有对撞机几乎都固定在静态对象上时,FPS会衰减。 这是因为碰撞解决方案的数量随着对象在静止时花费更多的时间而增加。但是,许多计算都是“无用的”,因为对象已经相对彼此沉降到稳定的位置。 避免这些“无用的”碰撞检测的最佳实践(最好是不需要物理学位)是什么? 编辑:接受DMGregory提示,并得出此结果(尚不理想) (红色=静态,蓝色=活动,绿色=睡眠)


3
使用深度分辨率的完整分辨率进行2D渲染
我正在使用正交投影为2D引擎进行从前到后的渲染器。我想使用深度缓冲区以避免过度绘制。我有一个16位的深度缓冲区,一个Z = 100的相机查看Z = 0,zNear为1,zFar为1000。每个渲染的精灵将其Z坐标设置为越来越远的值,从而允许深度测试跳过渲染下面的任何东西。 但是我知道Z位置以Z缓冲区值结束的方式是非线性的。我想利用16位深度缓冲区的完整分辨率,即允许65536个唯一值。因此,对于每个渲染的精灵,我想将Z位置增加到下一个位置,以与下一个唯一的深度缓冲区值相关联。 换句话说,我想将绘制的精灵的递增索引(0、1、2、3 ...)转到每个精灵的适当Z位置,以具有唯一的深度缓冲区值。我不确定这背后的数学原理。这样做的计算是什么? 注意我正在使用WebGL(基本上是OpenGL ES 2),并且我需要支持广泛的硬件,因此尽管gl_FragDepth之类的扩展名可能使此操作更容易,但出于兼容性原因,我无法使用它。

3
移动AI时如何考虑重力
我正在制作2D游戏。当前有一架直升飞机在飞行,由玩家控制。使用箭头键UP,LEFT和RIGHT进行控制。 沿y轴的速度为dy,而沿x轴的速度为dx。 它的物理如下: 只要不按UP,就dy以恒定的加速度无限期地加速。(重力)。dx保持其当前值。 当被按压UP,dy加速在恒定加速度从不管它目前是,高达4(向上,直到它到达速度4)。dx保持其当前值。 当按下左,dx加速在不断加速,从不管它目前,达-4。 当RIGHT被按下,DX加速时在恒定加速度,无论从任何它目前是,高达4。 (当我按下左键或右键而未同时按下UP 键时,我说过:dy由于重力影响直升机,它越来越小) 所有这些使直升机经常沿空中拱形而不是直线。 这产生了看起来很现实的物理学。 我的问题是: 敌方直升机,即AI,应使用相同的物理系统移动。 假设AI希望从当前位置到达B点。 如果游戏中没有重力且没有逐渐加速,那将很容易。我只需从AI的位置绘制一个向量到B点,然后让AI跟随它。 但是,由于存在重力和逐渐的加速度,所以AI永远无法(几乎)沿直线运动。使AI尽可能高效地到达B点的最佳方法是什么? 将AI移至特定目的地时,如何考虑重力? (如果更容易解释,请考虑B点在y轴上与AI处于同一水平,而不是与之成对角线。) 谢谢
9 2d  physics  ai 

1
如何在2D游戏中使用现代OpenGL?
我已经找到了很多有关3D的“现代” OpenGL(3.0+)教程,但是在寻找有关如何将其用于2D游戏开发的信息时,却几乎找不到。如何开始将OpenGL用于2D gamedev? 具体来说,我对获取以下主题的答案感兴趣: 我应该如何为正交投影设置各种矩阵? 着色器在2D应用程序中使用的程度与在3D应用程序中一样吗?如果是这样,它们在2D设置中的目的是什么? 我应该如何处理2D游戏显然需要的大量纹理? 对于这个相对广泛的问题,我深表歉意,但是我花了很长时间进行搜索,但发现很少有适用于现代OpenGL的有用信息。
9 opengl  2d 

2
我何时应将点和大小表示为结构?
作为我简单的Ruby 2D游戏开发框架的一部分,我的游戏对象具有位置(x和y值)和大小(宽度和高度)。 class MyGameObject attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height ... 我见过的另一种方法是将位置视为Point结构,将大小视为Size结构: Point = Struct.new(:x, :y) Size = Struct.new(:width,:height) class MyGameObject attr_accessor :position # Point instance attr_accessor :size # Size instance ... 一些框架使用前者(我认为GDX,Gosu ...)。其他人则使用后者(cocos2d-iphone)。问题是,我不清楚这两种行为的优缺点(在游戏开发中)-我不知道为什么有些框架选择了一个而不选择了另一个。 我应该考虑重大差异吗?

2
如何找到弹丸的发射角度?
我正在制作一个2D游戏,其中各单位互相射箭。我知道射手和目标的位置以及弹丸的初始速度。我想知道弹丸落在目标上的角度。目标的高度可能与射手的高度不同。 综上所述,我知道v0,R和g,我需要找到角度(或高度?)。 我阅读了http://en.wikipedia.org/wiki/Projectile_motion,但是找不到与我需要的东西相关的东西。

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.