Questions tagged «2d»

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

2
如何计算拦截向量?
给定一个二维空间,一艘友好的太空飞船停滞不前,一个敌人没有以已知的实际位置,速度和方向直接移动到友好的飞船上。 友好的战舰想进入射击场与敌人作战。 实际上,我只是将矢量设置为实际位置的移动船舶,并在每一帧进行重新计算,从而产生某种“圆形”飞行路径。 我想要的是设定一条直直的路径,以达到到达发射距离时敌人(大概)将要到达的位置(假设直到那时敌人不会改变方向)。 作为第一个“简单”的实现,如果我们假设朋友可以立即从0加速到max,就足够了。 首选实现方式将考虑朋友的加速能力,并知道何时由于速度而无法进行拦截。它应该以各种启动速度工作,而不仅是静止不动。如果它甚至考虑制动,则将是一个加分(在给定的宇宙中,以光速进行战斗对能量效率极低)

1
反射角度
我有这个“突破风格”的游戏。 我在中心有一门大炮,大炮周围有方块,方块周围有护垫。游戏外观如下: 我设法获得了每个像素的碰撞,并且我的球在与块接触时通过以下数学运算“ 反映 ”: Ball.Direction = 2 * (Block.Direction - Ball.Direction) + 180; 蓝线是球的方向,黑线(基线)是块的表面。 方向是以弧度表示的角度(当然可以转换为度)。 球通过以下方式移动: // Event.ENTER_FRAME x += Math.sin(Direction) * Velocity; y -= Math.cos(Direction) * Velocity; 到目前为止,一切都很好。 我的问题现在出在垫子上(小彩色块周围的3个深色大块)。 当它们转过来时,表面角度会发生变化。 不仅如此,球也应该击打侧面,那么,如何测量击球的方向和球的新运动方向呢? ps:如果需要,我可以提供代码和可播放的swf。 编辑 好的,角度问题已通过Vectors解决,但侧面和后部碰撞仍然存在问题。 我将为此打开另一个问题,并将其链接到此处。


3
二维表示行星表面
我想制作游戏,其中一部分工作是管理星球(建造城市,工厂,道路等),但我想避免使用3D-只有我想要的是2D。但是,如果我将行星表面表示为网格,那么靠近极点移动将很奇怪(如果我向上移动,我不会出现在地图的底部,而是出现在地图的顶部-仅在不同的位置),它将是很难拥有漂亮的地形(电线杆会拉长)。你有什么想法怎么做?
11 2d  maps 

5
现在可以使用的2D游戏引擎或框架好吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 基本上,我正在寻找一款出色的2D游戏引擎来构建平台游戏/类似逆向射击游戏,以增强我的产品组合(当我说支持时,我的意思是开始)。 我在标题中使用了“现在”一词,因为我已经阅读了一些问题,并且我真的不想使用类似Java的2003年以来的手机游戏API。(此外,XNA也不可能我已经在其中进行较大规模的项目。) 我在Java方面相当称职,并且对其他语言(如C#和Python)有基本的了解,但是我完全不反对在学习引擎的同时学习新语言(在合理范围内)。 该引擎不必超级强大,只需足够自由和简单即可让我的技术水平(三年级CS专业)的人都能获得不错的水平结果,而不会遇到太多颠簸。
11 2d 

4
渲染分辨率独立文本
我需要一种在游戏中绘制分辨率独立的文本的方法。也就是说,我需要能够放大文本,并且永远都看不到像素伪像。 谁能对我的建议提出任何建议?
11 xna  2d  3d  text 

2
如何在2.5D世界中同时使用深度测试和纹理透明度?
注意:我已经找到了答案(我将在这个问题之后发布)-我只是想知道我是否做对了,或者是否有更好的方法。 我正在使用OpenGL ES(JOGL)制作“ 2.5D”等距游戏。“ 2.5D”是指世界是3D,但使用2D等距图块进行渲染。 我必须解决的原始问题是必须按顺序(从后到前)渲染纹理,以便图块正确重叠以产生合适的效果。经过一番阅读,我很快意识到这是2D的“老帽子”方法。由于玩家可以修改3D世界(因此东西可以出现在3D空间中的任何地方),因此很难有效地做到这一点-因此,我利用深度缓冲区似乎是合乎逻辑的。这意味着我不必担心以正确的顺序渲染内容。 但是,我遇到了一个问题。如果将GL_DEPTH_TEST和GL_BLEND一起使用,则会创建一种效果,在将对象与背景混合之前,先按z顺序对其进行“排序”(这意味着您应该在透明度应达到的地方获得一种奇怪的重叠)。 这是一些应该说明问题的伪代码(顺便说一句,我在Android上使用libgdx)。 create() { // ... // some other code here // ... Gdx.gl.glEnable(GL10.GL_DEPTH_TEST); Gdx.gl.glEnable(GL10.GL_BLEND); } render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); Gdx.gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); // ... // bind texture and create vertices // ... } 所以问题是:如何解决透明度重叠问题?

3
TRON:游戏AI算法?
Lightcycles或其他类似的名称。 给定一个表示游戏地图的2d数组,其中每个元素可以为0或1(0表示空白,1表示填充空间),那么TRON敌人AI的算法是什么?
11 2d  ai 

3
将敌人随机放置在二维网格上
我想将物品和敌人随机放置(或尽可能随机放置)。目前,我使用XNA的Random类来生成一个介于X的800和Y的600之间的数字。感觉就像敌人向地图顶部生成的次数多于在中间或底部生成的数。我没有为生成器添加种子,也许这是要考虑的事情。 是否描述了其他可以改善2D网格上随机敌人放置的技术?
11 xna  2d  sprites  random 

2
使用Box2D多边形“ Set()”函数?
我正在使用Box2D物理引擎。box2D有一种形状,称为b2PolygonShape。 在此类中,您可以创建多边形。还有一个Set()函数,该函数接受点数组和顶点数。 Box2D有这样的示例: // This defines a triangle in CCW order. b2Vec2 vertices[3]; vertices[0].Set(0.0f, 0.0f); vertices[1].Set(1.0f, 0.0f); vertices[2].Set(0.0f, 1.0f); int32 count = 3; b2PolygonShape polygon; polygon.Set(vertices, count); 这可行。但是,当我尝试练习并弄混此功能时,我这样做是: b2Vec2 vertices[4]; vertices[0].Set(0, 0); vertices[1].Set(0,10); vertices[2].Set(10,10); vertices[3].Set(10,0); int32 count = 4; b2PolygonShape polygon; polygon.Set(vertices, count); 当我编译并运行它时,它在Set()函数之后崩溃了。这不会创建正方形吗? 同样在控制台中,我得到了: Assertion failed: s > 0.0f …
11 2d  physics  box2d 

5
壁架爬升动画和移动(二维平台游戏)
努力为物理驱动的2D平台游戏平台实施壁架攀爬机械师做出决策。避免过于复杂的最佳方法是什么? 到目前为止,我了解(这里的爱好者不是专业人士)有几种选择,包括: 在y轴上对刚体施加受控的力,直到根部位置刚好在手部位置上方,然后在x轴上施加足够的力,以使角色站立在平台上。同时以某种方式将其与爬升动画同步。 备注:在这里运动很容易,甚至可以通过棱柱形滑动关节进行控制,但是我不确定如何使动画(脊柱)与运动保持同步。 驱动角色根部位置的根动画。完成后传送刚体,并希望box2d仍能及时对任何碰撞(如果有任何物体从天上掉落)做出适当响应。 备注:听起来实际上更容易制作动画,但是不确定我是否会在spine运行时,box2d或更高版本的移动平台和不同高度的平台上遇到任何问题。 以编程方式在手上应用IK约束以将其锁定在适当位置,然后继续手动旋转骨骼或应用小的预设(少量关键帧/帧)动画,同时将所需的力施加到刚体上。 备注:似乎这样可以最大程度地控制播放器,但是对于我来说,在我的水平上实现它听起来很复杂,而不是确切地确定从哪里开始。 预先感谢您的任何投入! 仅供参考:这是一个带box2d的基于ECS(libgdx + Ashley)的引擎。壁架抓斗已经实现为一个单独的系统,因此我们在这里可以假定角色已经能够从任何高度的壁架上悬挂下来。
11 2d  libgdx  box2d  spine 

1
在Unity中更改对象的精灵
我想在hero(object)的脚本代码中添加更改其sprite的可能性。 因此,播放器按下了空格键,该精灵变成了已经添加到项目中的另一个精灵。 您可以提供一个示例代码来做到这一点吗?
11 c#  2d  unity  sprites 

4
如何实施减速?
我之所以说“减速”,是因为我目前不使用加速;我的意思是将速度移回零,最终停止。 我是向量的新手,但对物理学等却不太了解。通常如何处理“减速”? 我现在所拥有的有效,但似乎有些破旧。 update:function(Game, t, dt) { var speed = Game.Input.isKeyDown('shift') ? 8 : 4; if (Game.Input.isKeyDown('a')) { this.velocity.i -= speed; } else if (Game.Input.isKeyDown('d')) { this.velocity.i += speed; } else { if (Math.abs(this.velocity.i) > 3) { this.velocity.i += (this.velocity.i > 0) ? -speed : speed; } else { this.velocity.i …

2
如何计算击中移动目标的射击角度和速度?
我正在开发一款2D Android游戏,并且正在为AI弹丸制定一种瞄准算法,以沿着路径或自由移动击中敌人。目前,它只是计算目标在一定距离后的位置,并发射弹丸以达到该距离。当然,这意味着要改变弹丸速度以达到目标。 有没有人有简单的算法(最优的算法)的技巧来计算弹丸何时需要发射以及如果它只能以恒定的速度行进时需要瞄准什么地方?是说射弹的速度是目标的两倍? 我能想到的唯一方法就是搜索,而且看起来很大。
11 2d  android  mathematics  ai  aiming 

4
如何使Line Renderer线条保持平坦?
我注意到,当我向Line Renderer线添加更多顶点时,该线会扭曲并不再是平滑线。 .GIF此处:http://i.imgur.com/hRAhCXM.gif 即使删除了所有材质,所有线条仍在同一z水平上,但这些线条似乎仍然扭曲。 我不知道为什么这样做,或者如何解决它,有什么建议吗?C#
10 c#  unity  2d  lines 

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.