Questions tagged «tiles»

代表空间信息的形状相同的对象(通常是正方形或六边形)。

6
优雅的国际象棋瓷砖着色解决方案
我正在重新开发用Java编写的国际象棋游戏,并且想知道是否存在一种优雅的算法来为编号的国际象棋棋盘上色国际象棋棋盘。 现在,我的解决方案使用if else语句来确定图块是在偶数行还是奇数行上,并基于此判断它应该是亮还是暗的正方形。
19 tiles  chess 

6
无缝的tilemap渲染(无边界的相邻图像)
我有一个2D游戏引擎,可通过从tileset图像绘制图块来绘制图块。由于默认情况下OpenGL只能包装整个纹理(GL_REPEAT),而不仅仅是部分纹理,因此每个图块都被拆分为单独的纹理。然后,将同一图块的区域渲染为彼此相邻。这是按预期工作时的样子: 但是,一旦引入分数缩放,接缝就会出现: 为什么会这样?我以为这是由于线性过滤混合了四边形的边界,但仍然发生在点过滤中。到目前为止,我发现的唯一解决方案是确保所有定位和缩放仅在整数值处进行,并使用点过滤。这可能会降低游戏的视觉质量(尤其是子像素定位不再起作用,因此运动不太流畅)。 我尝试过/考虑过的事情: 抗锯齿可以减少但不能完全消除接缝 关闭mipmapping,无效 分别渲染每个图块并将其边缘拉伸1px-但这是一种非优化,因为它不再能够一次性渲染图块区域,并且会沿着透明区域的边缘创建其他伪像 在源图像周围添加1px边框并重复最后一个像素-但随后它们不再是2的幂,从而导致与不支持NPOT的系统的兼容性问题 编写自定义着色器以处理平铺图像-但是您将有何不同呢?GL_REPEAT应从边框的图像另一侧抓住像素,而不要选择透明度。 几何形状完全相邻,没有浮点舍入错误。 如果片段着色器经过硬编码以返回相同的颜色,则接缝消失。 如果将纹理设置为GL_CLAMP而不是GL_REPEAT,则接缝消失(尽管渲染错误)。 如果纹理设置为GL_MIRRORED_REPEAT,则接缝消失(尽管渲染还是错误的)。 如果我将背景设为红色,则接缝仍为白色。这表明它是从某个地方(而不是透明度)采样不透明的白色。 因此,接缝仅在GL_REPEAT设置时出现。仅出于某种原因,仅在此模式下,几何图形的边缘会出现渗色/泄漏/透明性。这个怎么可能?整个纹理是不透明的。

3
在XNA中,如何动态加载大型2D世界地图的各个部分?
我想绘制一张巨大的世界地图;尺寸至少为8000×6000像素。我将其分解为10×10的800×600像素PNG图像网格。为了避免将所有内容加载到内存中,应根据播放器在网格中的位置加载和卸载图像。 例如,这是位置上的玩家(3,3): 当他向右移动到(4,3)时,最左边的三个图像被释放,而右边的三个图像被分配: 网格的每个单元内可能应该有一个阈值来触发加载和卸载。加载可能应该在单独的线程中进行。 如何设计这样的系统?

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

2
六角形游戏网格的高程模型
TL; DR: 高程应在Civ样式的六角形网格上锚定的位置?中心,侧面还是顶点?(或更复杂?) 问题适当: 考虑一下我们都知道并且喜欢(也许?)的经典游戏,Sid Meier的Alpha Centauri。该地图模型将全新的可见地形标高概念引入了经典的Civ公式。在SMAC中,游戏板的每个顶点都有一个高程,考虑到蠕虫在各个角落等着沸腾,地图就可以在美丽的起伏山丘上形成,这是完全必要的。 仅顶点的高程图会整齐地转换为六边形网格吗? 显而易见的替代方法是基于侧面的立面映射和基于中心的立面映射;以及内部顶点高程贴图(给了悬崖的机会!是的!) 最后一个选择是在游戏网格上应用一个三角形网格,该网格包含中心和顶点,并具有仅顶点或内部顶点高程。 这些选项中的哪一个可能会运作良好?哪个可能会急速地从CPU和RAM中吸走所有汁液?

1
2D游戏中的图块大小
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在使用图块映射方法开发小型游戏时,我想到了一个问题: 我会在Windows上开发游戏,但不会排除将其适应于其他平台的情况。 您会建议使用什么尺寸(以像素为单位)来创建具有以下要求的贴图游戏(即RPG)的贴图? 在没有太多瓷砖的情况下,具有可接受的细节水平。 具有合适的地图尺寸。 允许在掌上电脑(即PSP),智能手机或计算机上对游戏进行改编,而不会损失太多细节或降低速度。 允许或多或少重要的放大/缩小。 具有允许像素完美碰撞或块碰撞的图块分辨率。 只要能满足要求,从良好的解释到游戏示例的任何内容都是有用的。 这个问题似乎有点简单,但是我注意到许多Indies游戏开发人员都在使用不合适的比例尺风景。 对于语法差和我的问题词汇量少,也感到抱歉,在谈论计算机编程时,如果母语不是英语的人不会帮忙。
15 2d  tiles 


3
为什么我的瓷砖之间有线条?
我正在制作自上而下的XNA游戏。地图是由图块创建的。我最近注意到的一个问题是磁贴之间的线条“网格”。它仅在某些时候出现,并且仅取决于相机的位置。我让XNA处理定位,为什么这些行显示出来? 这是带有线条的图片: 但是,将相机稍微移动一点之后,它神奇地回到了应该出现的样子: 谢谢你的帮助! 编辑: 对于源代码,这是我能做的最好的事情,这是一个非常大的项目,并且在多个区域进行渲染: 主渲染循环 对于诸如图块之类的动态元素: spriteBatch.Begin(SpriteSortMode.Deferred, Nothing, SamplerState.LinearClamp, Nothing, Nothing, Nothing, Matrix.CreateTranslation(CameraX, CameraY, 0)) Mode.Render(spriteBatch, False) For Each j As [Delegate] In DynamicInjectionList j.DynamicInvoke(spriteBatch) Next DynamicInjectionList.Clear() spriteBatch.End() Mode.Render: For x As Integer = 0 To GRIDMAX - 1 For y As Integer = 0 To GRIDMAX - …

1
如何在图块地图的顶部定义复杂的碰撞区域?
正如许多人所建议的那样,我正在使用Tiled地图编辑器为我的游戏创建地图,这特别棒,因为libgdx框架还提供了Tiled地图的API。 我知道我可以在地图编辑器中定义是否可折叠的图块,这样我就可以处理代码中的任何冲突。但是我目前处于需要将图块划分为可碰撞和不可碰撞区域的情况。我认为可以手动定义两个区域的边界点和界限,并以编程方式处理它。但这是很多耗时的工作。 因此,我在Google上搜索了很多东西,然后找到了这个物理身体编辑器。这似乎是使我上面提到的过程自动化的好工具。但是,该系统可以处理每个解压缩的图像,即使将图像解压缩以进行操作,我也不确定它是否可以正常工作。 我想知道是否有更好的方法来完成定义碰撞区域的整个过程。任何建议将不胜感激。

2
渲染图块时如何处理凹凸不平的图块?
这是我不确定要处理的地图。如您所见,顶壁比底壁和侧壁要大得多(这也是我的角落的问题,这些角落是奇怪的形状(更像是L,然后是正方形),以及比我当前的瓷砖大40x40px )。 我还附加了我要用于瓷砖的瓷砖板,以向您展示与其余瓷砖相比,边角和顶部的外观。 我在想的是,如果我使用图块的宽度和高度而不是设置的WxH,我也许可以使用与我相同的数组绘制它们?我不知道这将如何运作,但是具有不同值的方块会成为玩家/ NPC无法踩到的方块,那么这可能不是问题,再次我甚至不确定那是否可行解。 我的代码,以防您想了解我当前的处理方式:Map.java(pastebin)(edit:im 未处理它,意味着我目前在处理地图) tl; dr-如何获取2d外观的地图并更改为其他大小的地图?还是有更好的方法来做我想做的事情?谷歌搜索时应该寻找一种方法的名称吗?
13 2d  java  tiles  maps 

2
如何应对自上而下的RPG运动?
我有一个用Java编写的游戏。这是自上而下的RPG,我正在尝试处理世界上的运动。这个世界在很大程度上是程序性的,我很难解决如何处理角色在世界各地的移动以及如何将更改呈现到屏幕上。我将世界加载到包含所有图块的块中。 我该如何应对角色移动? 我很沮丧,无法弄清楚应该去哪里。 编辑:好吧,我对手头的问题很抽象。 现在,我只能想到将所有内容严格地粘贴到2D数组中并在块中保存块ID和播放器偏移,否则我可以“浮动”所有内容并在块之间移动。
13 java  tiles  rpg  movement 

2
将许多小碰撞器组合成更大的碰撞器
我正在使用由数千个网格正方形组成的图块地图创建游戏。目前,每个广场上都有一个广场对撞机,用于检查碰撞。 但是,对于成千上万个微小的块,检查它们是否全部碰撞是低效率的。如果我事先知道tilemap看起来像这样,那么我可能只使用了3或4个大型对撞机,而不是数千个小型对撞机: 是否存在某种标准算法,可将许多小相邻的小块合并为最大的小块?如果是这样,有人可以在这里描述它,还是指向有关这种算法的文献? 另外,也许以这种方式预处理瓦片碰撞器完全是错误的方法。如果是这样,应对大量对撞机效率的正确方法是什么?

2
在libgdx中重复纹理
如何用重复纹理填充区域?现在,我正在使用下一个方法: spriteBatch.begin(); final int tWidth = texture.getWidth(); final int tHeight = texture.getHeight(); for (int i = 0; i < regionWidth / tWidth; i++) { for (int k = 0; k < regionHeight / tHeight; k++) { spriteBatch.draw(texture, i*tWidth, k); } } spriteBatch.end(); 很明显 也许有任何内置方法?

2
实体系统框架中的图块地图?
我一直在阅读实体系统框架,尤其是Artemis。我正在尝试确定是否适合我。我严格从事基于图块的2d像素艺术游戏,而且我认为它们永远不会占用大量资源。过去,我一直使用标准OOP进行大量继承。 我现在对实体系统框架的理解(我不确定是否完全掌握): 实体不过是ID的 组件不过是添加到实体组件池中的哑数据 系统是附加到世界的更新功能,用于处理与系统组件签名匹配的每个实体 如果我的理解是正确的,那么在概念上很难在此框架中添加图块图和AI行为树。我将来会问有关AI的问题。 是否应在此框架中内置图块地图?还是应该将其分开放置以使其易于使用tilemap编辑器生成? 如果应该将tilemap内置到此框架中,那么每个tile都是不同的实体吗?和tilemap一个系统?还是tilemap本身就是继承了继承关系的单个实体? 如果tilemap足够精细,那么与外部tilemap碰撞检测实体的最佳方法是什么? 我了解我列出的多个选项可能是正确的,但是如果有人过去这样做过,他们也许可以使我感到困惑。也许还有我没有想到的另一种选择? 谢谢。

5
2D关卡设计/编辑/保存问题[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我考虑过要制作一个像SuperMario这样的简单2D Sidescroller游戏。然后我想知道如何保存,加载或创建游戏关卡。我想到的第一件事是绘制一个简单的块状png来表示水平,这使玩家可以行走的所有部分都具有特殊的颜色(也许是淡紫色)。我将以块或图块的形式导入级别,以便检查碰撞。 所以我的问题是: 有更好的方法吗? 有哪些专业方法? 我应该使用Tiles和基于Tile的地图编辑器来做到这一点吗?(出于某种原因,我不喜欢这种方法,但是我想我是否会使用它的最佳方法) 基于图块的水准仪,您将如何认识坡度,以及如何检查坡口是否发生碰撞?

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.