问题标签 [2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5779 浏览

2d - 用于地形碰撞检测的简单 2d 物理教程

我正在寻找一个教程,它将向我展示如何做简单的 2d 物理,就像这里( http://www.teagames.com/games/tgmotocross/play.php ) 中的那些。我最感兴趣的部分是角色/玩家与地形之间如何进行碰撞检测,以及如何存储/生成地形。
教程的语言无关紧要——我只是对如何做这件事感兴趣。
非常感谢。


编辑:澄清一下,我已经知道如何在两个精灵之间执行碰撞检测,以及足够的物理来编写 2d 游戏 - 我正在专门寻找关于如何实现可以碰撞的平滑地形的教程/示例(我明白可破坏的景观是如何完成的,我认为这会以某种方式相关)。此外,我知道 N 个教程,但它们使用离散的形状,而我对平滑的景观感兴趣。

0 投票
5 回答
1229 浏览

iphone - 需要帮助优化我在 iPhone 上的 2d 绘图

我正在编写一个游戏,它显示 56 个六边形棋子以棋盘的形状填充屏幕。我目前正在使用单例渲染类绘制每一块,当调用它来绘制一块时,会根据传入的坐标从 6 个点创建一条路径。这条路径填充了纯色,然后是一个 59x59 png 和一个 alpha 到白色渐变覆盖在图纸上,使作品看起来有光泽。请注意,我目前正在 Core Graphics 中执行此操作。

我的第一个想法是每次绘制时创建一条路径成本很高,而且似乎我可以以某种方式执行一次然后重用它,但我不确定最好的方法。当我查看 Shark 的瓶颈时,看起来 png 的绘制是该过程中最费力的部分。我试过只渲染 png 叠加层或只渲染没有叠加层的路径,两者都给了我一些帧增益,尽管删除 png 叠加层会产生最多的帧。

我目前的想法是,在启动时,我应该渲染 6 条路径(我拥有的每个颜色块 1 条)并用 png 覆盖它们,然后存储这些块的图像,然后每次我需要它们时重新绘制这些块。是否有一种有效的机制来存储你曾经绘制过的东西并重新绘制它?听起来我会再次经常遇到整个绘图 png 的事情,但也许有一种不那么费力的方法可以做类似的事情......

任何建议都非常感谢。谢谢!

0 投票
3 回答
3792 浏览

vector - 确定二维向量的大致方向

我有一个相当简单的问题要问你。我觉得我早就应该找到答案,但不知何故我无法解决这个微不足道的问题。

给定一个向量 v = (x,y) ,我想知道它的“一般”方向。即“上”、“下”、“左”或“右”

如果矢量的方向在 45 到 135 度之间,则矢量的一般方向为“向上”。“左”在 135 到 225 度之间。“向下”在 225 到 315 度之间。“右”在 315 到 45 度之间。

我真的不关心角度正好是 45、135、225 或 315 度的情况。

问题是,我不想使用三角函数。我很确定有一个简单的解决方案。

我认为一个解决方案可以将整个圈子分成八部分。这是我到目前为止所拥有的。

基本上,我知道我可以找到解决方案。我对你自己解决这个问题的方法更感兴趣。

谢谢 !

编辑:使用的向量未标准化。您可以使用一对点来表示任何向量。简单地假设向量的原点是(0,0)。

0 投票
1 回答
264 浏览

text - 2D 文本如何反映到 3D 网格表面上?

如何在 C# 中将 2D 文本反映到 3D 网格表面上?

提前致谢。

切莫

0 投票
3 回答
1363 浏览

c# - 如何在游戏中拥有局部位置和全局位置

我有一个名为 Component 的基类。我也有 2 个接口 I2DComponent 和 I3DComponent。我目前正在研究 I2DComponent。

实施:

所以问题是我需要访问全局位置或矩形来检查鼠标是否在它上面。

但是当我只是访问移动它时,我只想访问本地位置,这样如果我在位置 50、50 有一个游戏屏幕,那么我可以将本地位置设置为 0、0,它将位于顶部父游戏屏幕的左上角。我想真正的问题是我不想通过说

这或多或少是一个访问器设计问题,我想让它看起来正确,但我在这样做时遇到了麻烦。

更新:

如果我改变它,使 I2D 组件只有 Bounds 和 scale,然后在 GameScreen 中有一个函数来获取组件的当前“全局”位置,该怎么办。

更新:

这些 2D 对象都是在 3D 空间中绘制为 hud 或 gui 对象的所有对象。只是澄清一下。

更新:

我现在正在考虑递归地做它,但我不确定我将如何去做。

0 投票
3 回答
27373 浏览

multidimensional-array - 在 CUDA 中的设备内存上分配二维数组

如何在 Cuda 的设备内存中分配和传输(与主机之间)二维数组?

0 投票
1 回答
476 浏览

c - 如何将二维数组从动态更改为特定大小的静态?

我目前有动态数组:

我想创建一个静态二维数组,500 行 X 10 列,每个元素存储 40 个字符的内存。

下面会是正确的声明方式吗?

0 投票
4 回答
1485 浏览

iphone - 使用精灵进行 iPhone 开发

我想创建一个 iPhone/iPod 游戏。我希望它是 3d,但我想使用精灵而不是 OpenGL 来做到这一点(我认为这会更容易,因为我不知道 OpenGL)。

我正在考虑简单地将精灵分层并改变它们的大小以产生 3d 的错觉。它不需要太有说服力,因为游戏会有点卡通。

如何在 iPhone 平台上使用精灵作为 OpenGL 的替代品?

0 投票
3 回答
1373 浏览

java - 寻路2d java游戏进一步问题

前段时间我问了一个关于java 2d pathfinding的问题... Pathfinding 2D Java game?

我正在开发的游戏是基于主题医院的想法。从我的问题中选择的答案,A* 寻路,链接很棒,非常有帮助。我最终将把它应用到我的游戏中,但是我还有一些关于它的问题/问题。

在我的游戏中,地图会改变。本教程假设地图是静态的(我认为)。我一直在看代码,据我所知,我只需要创建一个方法来调用来更新寻路代码中的游戏地图。

其次,我看到了 GameMap 类。我有自己的班级,叫做 Board,里面有所有的瓷砖。我相信我可以将 GameMap 上的方法集成到我的 Board 类中。正确的?

第三,我一直在研究任何房间都将被视为阻塞的推理。我的意思是,房间覆盖的任何方格都被算作阻塞。我在想人们会从哪里进入房间。然后,他们将不得不在这些房间周围移动才能到达不同的地方。我在想我会为每个正方形反转 Blocked 布尔值,但这有两个原因是行不通的。1,房间可能有相邻的墙壁,并且可能会破坏寻路。2、如果阻塞状态只是简单的倒置,那么房间内的任何实心物品倒置后都会被视为不实心,这可能会在它们与墙壁接触时出现问题。

想一想,如果您可以将正方形的边制作成块状而不是实际的整个正方形会更好。这一定是可能的,但我只是通过使用上一个问题中的教程获得,并且不确定我是否应该尝试更改 A* 来执行此操作,或者解决房间物品问题的解决方法。

对这些问题有什么想法或建议吗?我今天正在实施简单的路径查找,但只是提前思考。

0 投票
3 回答
2442 浏览

language-agnostic - 2D 运动模糊解决方案

我正在考虑将运动模糊添加到我的 2D 程序中,但我怀疑我当前算法的结果。

我的方法目前看起来像这样:

  • 绘制到后备缓冲区。
  • 当需要更新前缓冲区时,将后缓冲区混合到前缓冲区。
  • 重复

导致“运动模糊”效果的原因显然是混合,因为运动中的物体会留下褪色的痕迹。

这显然对硬件要求不是很高,无论如何都会完成双缓冲,唯一额外的步骤是 alpha 混合,这是一个简单的计算。但是,轨迹会非常锐利,而且一点也不模糊,这可能看起来有点奇怪。我可以在混合步骤之前在后台缓冲区上做一个盒子模糊,但感觉这对像 Nintendo DS 这样的低端系统来说可能非常费力。

是否有任何解决方案可以让我更有效地完成工作或产生更好看的结果?