Questions tagged «2d»

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

2
使用L系统以程序方式生成城市
我目前正在制作一款专注于程序生成内容的应用。到目前为止,我已经使用单纯形噪声成功实现了地形和地图形状的程序生成。我对它的外观感到非常满意。现在,我正在尝试为城市做同样的事情。我只需要生成街道和建筑物的2D布局即可。我研究了它,似乎大多数人都建议使用L系统。但是我似乎无法将他们的头缠住。我得到了概念,但没有将实现转化为代码。是否有人提供用于程序生成城市的L系统的代码示例,或有关处理城市的其他方法的建议?

3
如何使2D游戏分辨率独立?
我正在开发一个简单的2D游戏。我已经完成了手机版本。 但是,我的老板希望游戏能够在他的RT上运行。我正在执行“转换”,但是我的按钮放在错误的位置,因为我对屏幕尺寸进行了硬编码,如下所示: texture = game.Content.Load<Texture2D>("StartScreen"); mainFrame = new Rectangle(0, 0, game.GraphicsDevice.Viewport.Width, game.GraphicsDevice.Viewport.Height); // button definitions startbrect = new Rectangle(300, 258, 88, 88); startbtext = game.Content.Load<Texture2D>("bplay"); 在此示例中,mainframe可以,但startbrect不是,因为我定义了与Windows Phone屏幕匹配的尺寸。当所有Windows 8手机的屏幕都不同时,如何处理响应式设计?是否有公式或宏可以计算出每次合适的尺寸?
10 c#  2d  resolution 

3
我可以从A跳到B吗?
我正在为侧滑车制作一些基本的AI,并且我需要知道AI单元是否可以仅通过跳跃就可以从A点到达B点。 我的角色的飞行轨迹有点用处不大,因为他们可以在空中施加力量(例如在Jazz Jackrabbit 2中),因此与经典弹丸的轨迹不同: 投掷或发射的弹丸将采取(...)没有推进力的路径。 ……我想我的问题更多是关于带有推进力的弹丸(例如火箭)。 为了说明这一点,这是我跳并不断按下“左键”时飞行曲线的样子(在左端看起来有所不同,这是我在空中进行一些操作的地方): 飞行期间施加的力始终平行于X轴,因此,如果我按住“左”,则为F =(-f,0);如果我按住“右” ,则为F =(f,0)。 他的动作非常像跳台滑雪者: 因此,它与经典的抛物线轨迹有很大不同(来源:Wikipedia): 更困难的是,我正在模拟简单的空气阻力,因此我的角色只能加速到某个最大速度值。 这是通过在相反的方向施加较小的力来完成的: b2Vec2 vel = body->GetLinearVelocity(); float speed = vel.Normalize(); //normalizes vector and returns length body->ApplyForce( AIR_RESISTANCE_MULT * speed * speed * -vel, body->GetWorldCenter() ); AIR_RESISTANCE_MULT是一个常数,在我的情况下等于0.1。 假设我的角色是一个非常小的点。 而且我没有考虑障碍,所以我的问题是这样的... 在给定初始速度V的情况下,如何确定(至少可靠地猜测)我在跳跃时应用于角色的脉冲J =(0,-j),重力G =(0,g),力F =(+ -f ,0)如果我们真的决定考虑空气阻力 (这是可选的) ,那么在飞行和AIR_RESISTANCE_MULT期间会持续应用(这是可选的),是否某个点位于我的角色将采用的路径绘制的曲线下方? 我实际上不知道从哪里开始计算,实际上,我不一定对确切的答案感兴趣。良好的破解/逼真度将非常棒,因为AI绝对不需要完美运行。 …

2
下降块和复杂形状
我目前有一个简单的类似Tetris的游戏,遇到了我无法解决的问题。 与俄罗斯方块中有一个单独的下降形状不同,我有多个可能需要互锁的形状需要下降;我需要计算他们的最终职位。考虑以下: 要计算绿色形状的最终位置,我只需向下扫描每个正方形,直到碰到另一个正方形或板的边缘。完成 对于多种简单形状,我会按照自己的方式进行开发。因此,发现红色不需要移动,橙色下降1,绿色下降3。完成 我不知道如何对待互锁的绿色和红色形状。使用#2的逻辑,我们最终会“卡住”漂浮在空中。如果我向下扫描以获取绿色形状,则会遇到红色,因此不会移动,反之亦然。解决方案可能是将两种形状视为一种。 与#3类似,在这种情况下,我也可以通过将对象视为一个对象而成功。 与#3和#4不同,我无法将形状视为一个形状,因为橙色形状最终会浮动一个正方形太高... 问题6的另一种变化。 可能还有其他情况,使我有许多形状在越来越复杂的情况下交织在一起,但是我认为以上内容涵盖了问题的最基本部分。 我觉得我还没有遇到/想过一个优雅的解决方案,并且非常感谢您提供任何见解,想法或资源。 解 根据下面的@ user35958的答案,我想出的解决方案确实很优雅,我创建了以下递归函数(伪代码) function stop(square1, square2){ // Skip if we're already stopped if(square1.stopped){ return; } // Are we comparing squares? if(!square2){ // We are NOT comparing squares, simply stop. square1.stopped = true; } else { // Stop IF // square1 …

1
如何实现图层之间投射的2D阴影?
如何实现由不同层中的对象投射的2D阴影? 不喜欢Catalin Zima著名教程中的动态照明: 但是就像这段视频中管道的阴影一样: 就像这个视频中平台的影子和角色一样: 我想在具有多个图层和许多不同颜色的灯光的场景中使用相同类型的照明。 我可以想象通过在该图层后面的图层上绘制该图层的黑色副本,然后根据要在其上投射阴影的图层中的孔进行调整来进行此操作。但是我希望有一种更便宜的基于像素着色器的方法。

2
Java 2D游戏编程:制作游戏循环的不同方法
我是Java游戏编程的新手,但是我阅读的内容越多,我就越困惑,因为我已经看到了制作游戏循环的几种不同方法:1.使用Timer类的标准方法(似乎要少一些)精确)。2.使用System.nanoTime的更精确的方法。3.使用scheduleAtFixedRate的简单方法。 通常应首选哪种方法,每种方法的优缺点在哪里?在此先感谢您的任何信息。

1
获取2D“像素”云跟随鼠标
我正在开发一个2D游戏,试图获得由数百个微小的立方体或光盘组成的“云”,以跟随我的鼠标光标而彼此不重叠。 但是,随着光盘数量的增加,使用物理引擎会导致性能变慢,并且碰撞检测通常比较困难。 有没有一种简便的方法可以针对这种情况优化引擎?如果没有,那么我会关闭引擎并编写自己的东西会更好吗?(在这里抓着稻草,但是:)是否有很好的资源或示例说明如何做到这一点?
10 2d  physics  unity 

1
如何获得“ 8位图形”外观?
我有很强的编程背景,但并非来自游戏开发。我在高中时只打过乒乓球和蛇,在大学时做了过OpenGL。 我想制作自己的游戏引擎。只是一个简单的2D游戏引擎就没什么了。但是因为我有点老派,而且感觉复古。我希望图形看起来像旧的8位游戏(《超人》,《魂斗罗》,《超级马里奥》等)。 那么,当时的旧游戏是如何制作的?我想要最简单的方法。他们现在是否还在像新引擎一样使用资产(图像)?如何使用OpenGL实现这种渲染? 记住。最简单的解决方案。我想知道当时的制作方法以及如何复制它。甚至不必是OpenGL。我可以在窗户画布上画画。我确实想从头开始。

2
船在基于RTS的2D瓦片中的桥下通过
我正在编写基于2D切片的RTS。我想为其添加“伪3D”功能-跨河桥梁。 我还没有开始任何编码,只是试图考虑它如何适合碰撞检测模型。经过桥下的船只和经过桥上的部队最终将占据地图上的同一单元。如何防止它们发生碰撞? 是否有解决此问题的通用方法?还是我需要实现3D世界才能做到这一点?

4
如何在两个不同的2D坐标系之间转换?
我正在尝试将一个坐标系从一个坐标系转换为另一个坐标系,以便可以在图像上绘制它。 基本上,目标坐标系如下: X range: 0 to 1066 Y range: 0 to 1600 (仅是我要绘制的标准图像,尺寸为1066 x 1600) 我尝试在图像上绘制的位置实际上具有完全相同的大小,但是坐标系不同。所有坐标的跨度为1066x1600。 但是一个坐标示例将是: (111.33f, 1408.41f) (-212.87f, 1225.16f) 该坐标系的范围是: X range: -533.333 to 533.333 Y range: 533.333 to 2133.333 我觉得这是一个非常简单的数学运算,但是由于某种原因我没有理解。 如何将提供的坐标转换为第一个坐标系?
10 2d  coordinates 

1
如何为保持像素保真度的转换2D精灵创建“复古”像素着色器?
下图显示了在背景上方通过点采样渲染的两个精灵: 左头骨没有应用旋转/缩放,因此每个像素都与背景完美匹配。 右头骨旋转/缩放,这将导致不再与轴对齐的较大像素。 我如何开发一个像素着色器,该着色器将在右侧以与场景其余部分相同大小的轴对齐像素来渲染转换后的精灵? 这可能与在“猴子岛”(Monkey Island)等旧游戏中如何实现精灵缩放有关,因为这是我试图实现的效果,但增加了旋转功能。 编辑 根据kaoD的建议,我试图通过后期处理解决该问题。最简单的方法是先渲染到一个单独的渲染目标(下采样以匹配所需的像素大小),然后在第二次渲染时将其放大。它确实满足了我上面的要求。 首先,我尝试这样做,Linear -> Point结果是这样的: 没有失真,但结果看起来很模糊,并且丢失了大多数高光颜色。在我看来,它打破了我需要的复古外观。 我第二次尝试Point -> Point,结果是这样的: 尽管存在失真,但我认为这可能足以满足我的需求,尽管它看起来比静止图像确实好看。 为了演示,这是该效果的视频,尽管YouTube过滤掉了其中的像素: http://youtu.be/hqokk58KFmI 但是,如果有人想出一个更好的采样解决方案,该解决方案可以保持清晰的外观,同时减少移动时的失真量,那么我将继续待几天。

3
将DX10 / 11用于2D游戏有什么优势吗?
我对DX10 / 11类硬件引入的功能集并不完全熟悉。我对熟悉的可编程图形管线中添加的新阶段(例如几何体着色器,计算着色器和新的细分阶段)非常熟悉。我看不出这些对2D游戏有什么影响。 是否有任何令人信服的理由将2D游戏切换到DX10 / 11(或OpenGL等价物),或者考虑到市场的很大份额仍然依靠较旧的技术(例如, 2012年2月Steam调查显示约有17%的用户仍在使用Windows XP)?
10 2d  graphics  directx 

2
连续物理引擎的碰撞检测技术
我正在使用一个纯粹的连续物理引擎,因此我需要选择用于宽相和窄相碰撞检测的算法。“完全连续”表示我从不进行交叉测试,而是想找到方法在每次碰撞发生之前将其捕获,然后将其放入由TOI排序的“计划的碰撞”堆栈中。 宽相 我能想到的唯一连续的宽相方法是将每个物体围成一个圆圈,并测试每个圆圈是否会相互重叠。但是,这似乎效率极低,并且没有任何剔除。 我不知道对于今天的离散碰撞剔除方法(例如四叉树),可能存在什么连续的类似物。我应该如何防止不适当且毫无意义的广泛测试,例如分立引擎?我还希望能够看到超过1帧的碰撞。 狭窄阶段 我已经设法使狭窄的SAT适应连续检查而不是离散检查,但是我敢肯定,您可能遇到过的论文或网站中还有其他更好的算法。 您建议我使用哪种快速或准确的算法,每种算法的优点/缺点是什么? 最后说明: 我说的是技术而不是算法,因为我尚未决定如何存储可能是凹形,凸形,圆形甚至有孔的不同多边形。我计划根据算法的要求对此做出决定(例如,如果我选择将多边形分解为三角形或凸形的算法,我将以这种形式简单地存储多边形数据)。

2
如何在六角形网格上旋转六角形瓷砖的结构?
我的2D等距游戏使用六角形网格图。参考下图,如何将浅蓝色六边形结构围绕粉红色六边形旋转60度? 编辑: 主十六进制是(0,0)。其他十六进制是孩子,他们的数目是固定的。我将只定义一个位置(在本例中为右),并根据需要计算其他方向(左底,右底,右上,左上和左)。其他十六进制定义为:Package.Add(-1,0),Package.Add(-2,0),依此类推。 switch(Direction) { case DirRightDown: if(Number.Y % 2 && Point.X % 2) Number.X += 1; Number.Y += Point.X + Point.Y / 2; Number.X += Point.X / 2 - Point.Y / 1.5; break; } 在这段代码中,Number是主要的十六进制,Point也是我要旋转的十六进制,但是它不起作用:

3
为2D赛车游戏构建AI的技巧
我有一个学校项目在为2D赛车游戏构建AI,在该AI中它将与其他数个AI竞争(不发生碰撞)。 我们获得了赛车场的黑白位图图像,收到地图后,我们可以选择汽车的基本统计信息(处理,加速,最大速度和刹车)。AI连接到游戏的服务器,并多次为它提供当前加速和转向的第二个数字。顺便说一下,我选择的语言是C ++。问题是: 最好的策略或算法是什么(因为我想尝试并获胜)?我目前在脑海中想到了一些想法,也有一个或两个想法,但是在开始编写代码之前,我想我的观点是最好的。关于这件事有什么好书?我应该参考哪些网站?
10 2d  c++  ai  racing 

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.