Articles of 映射

如何在自顶向下的透视游戏中用低algorithm复杂度表示地图?

这是我第一次开发电子游戏,而且我迷失了方向。 我想知道在自上而下的透视游戏中表示2D地图的方法。 (像这样:vengadoravg.github.io/1/game.html btw,这是我开发的第一场比赛) 到目前为止,我已经find了一种在自顶向下的透视游戏中表示2D地图的方法: 使用matrix。 如果一个正常的地板位置是由某个数字(或字符)表示的,那么这个障碍就用一个不同的数字表示,而敌人则用另一个不同的数字表示。 这个matrix将允许我运行图论algorithm和疯狂的事情,但是我认为这将是algorithm上非常复杂的,因为这个图将是真正的人口稠密的。 因此,所有的精灵应该是相同的大小,否则,matrix将是真的,真的很大。 还有其他更好的方法吗? 在algorithm复杂性方面,哪个最适合运行图论algorithm呢? 我道歉,如果这个问题听起来是主观的…但我认为一种方法的优越性可以由其algorithm的复杂性决定:)

如何从游戏地图图像创建自定义的“Google地图”可视化效果?

我正在尝试为专用的Ultima Online服务器创建相应的Google Maps地图,并使用自定义地图replace默认地图。 我想让玩家在地图上固定重要位置,并在特定位置张贴他们的游戏活动的截图。 我在Wurm Online等其他游戏中看到过这一点。 这样的Google地图(或类似的服务)的版本是否存在? 还是我必须自己建造呢?

有效地创建和管理一个非常大的tileMap

我正在做一个二维JRPG建立在一个鸟瞰tileMap上,我不能完全包围我的脑子,我将如何有效地做到这一点 我想使用50X50块,在玩家所在的邻近4个邻近点中的玩家周围呈现。当玩家从块移动到块时,与其相邻的所有块都被渲染,并且只有这些块其余的以前渲染的块被删除 我也需要一种方法来有效地处理由用户修改的块 如果你的答案可以提供必要的材料,所以我可以做这两件事的研究,我将不胜感激 方法,将允许有效的块加载和存储 一种方法来保持由玩家修改的块“保存”以备后用 如果你能列出所有必要的事情,我需要做到这一点,我真的很感激

我在哪里可以了解3ds Max 2012的物质贴图?

3ds max 2012中的新function是Substance程序纹理。 有没有好的在线图书馆或物质地图资源?

如何从基于ID的瓦片中select瓦片?

比方说,我有一个瓷砖表,每张纸包含8个精灵。 每个精灵都是30×30的拼贴。 我写了自己的自定义地图parsing器/地图加载器,但是我无法从文件中提取某个tile精灵。 我会更好地描述我的问题,以便大家理解。 我写了一个材料枚举,每个材质都根据它相对于瓷砖的位置有一个值。 例如void是1,grass是2,rock是3等。所以在我的瓦片里,他们被表示为: +—+—+—+—+—+ | 1 | 2 | 3 | 4 | 5 | +—+—+—+—+—+ 这相当于: +——+——-+——-+ | void | grass | stone | +——+——-+——-+ 基本上,在渲染时,我创建了一个tile类,每个tile有2个坐标:X和Y(它们是自动计算的)以及一个可以用数字表示的材料,或者是一个值(ID)。 在渲染的时候,我有一个精灵vector,它们都是从一个名为tilesheet.png的文件中提取出来的,但是每个精灵都只能绘制某个部分,比如说我有这样的东西: tile coordinateBounds(topLeftX, topLeftY, tileWidth, tileHeight); 在地图的初始化过程中,我计算了一系列的贴图,并给出了它们的位置,它们的材质是基于地图文件中的值以及碰撞等其他一些variables。 我需要根据它们的材质值将坐标边界应用到每个坐标边界。 例如,如果材料是草,它应该只从tileheet中取出草精灵。 我还必须提到我正在使用SFML,并且没有边界或瓷砖之间的间距。

地图数据arrays

我正在寻找关于存储地图数据的最佳方式的想法。 我需要为地图上的每个像素存储地区所有权数据。 每个像素的数据是这样的: Player 1 points: 24 Player 2 points: 118 Player 3 points: 78 目前我正在testing通过使用数组int[width][height][3]来存储点。 然后循环遍历每次更新和重新渲染取决于点。 for (int i=0; i < screenWidth; i++) { for (int j=0; j < screenHeight; j++) { //Do stuff with array[i][j][0] //Do stuff with array[i][j][1] //Do stuff with array[i][j][2] } } 遍历一个[800][600][3]数组,每个渲染是昂贵的。 什么是更好的方式去做这件事?

如何看待高等量瓷砖重叠的玩家?

我正在做一个基于PHP,MySQL和Javascript的浏览器游戏。 它有一个等角的世界,玩家可以移动并看到其他玩家/ NPC。 但是,如果前景中的一块瓷砖如此之高以至于它与后面的瓷砖重叠(如建筑物或一组树木等),那么如何接近重叠的玩家呢? 我不希望玩家能够“躲”在高瓦后面,这样其他玩家或角色的角色就不可见。 我想通过“制作一个三明治”来实现透明度,在底部有一个瓷砖层,然后是玩家,然后是同一个瓷砖层,但是稍微透明。 但是当我尝试的时候,玩家看起来就像是一个漂浮在空中的鬼王,而玩家的立场并不清楚。 其他游戏(如帝国时代)通过显示重叠字符作为大纲来管理这一点,但据我所知,使用PHP这是非常复杂/ CPU密集型的。 我不知道如何解决这个问题。 有任何想法吗?

快速algorithm来识别地图内未被绘制的矩形

我已经有一个这样的工作algorithm,但它是自制的,它检查的东西有一些冗余,所以我正在寻找一个快速的algorithm(或它的名字),可以检测未绘制的二维地图部分一个图片或一个网格),将这些部分作为边界平行于轴线 (x,y,宽度,高度)的矩形列表返回。 地图不是很大,像200×200。 编辑: 矩形检测必须平行于轴x和y 例如,在这个地图上跑步,寻找空格字符“”和2×3矩形: *C***DDD**** *01F *E* * *** *** * ** * * *A**** **** ************ 它会检测标有“X”的部分: *C***DDD**** *01FXX*E*XX* *** XX***XX* ** XX* XX* *A**** **** ************ 有没有人听说过这样的algorithm,但速度很快? 现在我正在做的是我正在扫描每个单元格,并检查当前位置的w * h Rect是否填充了search值。 但是你可以看到有很多的冗余。 我想知道像PNG这样的位图压缩algorithm是否不使用这种检测,以便压缩拼贴块/统一区域的重复。 如果这是他们使用的应该是非常快的algorithm的情况,因为速度是他们的问题。 检测不一定是确切的(如果某些区域没有被检测到,但是大部分都需要)。 所以大部分需要非常快速。

如何在DCEL边缘上存储其他属性?

我目前正在开发一个城市发电机,在道路上工作时遇到了一些数据存储的问题。 我目前使用双连接边缘列表 (简称DCEL)来存储道路数据。 每条道路将由两条半边组成,每条边连接一个顶点。 DCEL的优点是可以轻松访问道路的空间分区或半边所包含的面。 但是,我遇到了存储道路附加数据的麻烦。 我现在存储(在DCEL旁边)一个简单的包含所有道路的向量,它们作为它们开始和结束的简单索引对。 但是,我只使用这个向量来批量访问数据(对于边框testing或渲染),没有具体的。 我想将有关道路的其他信息存储为一些结构,但我不知道在哪里存储它。 我需要通过DCEL轻松访问它,但我不想在两个半边之间复制数据。 我该怎么办?

对单纯的噪音使用置换表而不存储它

生成单纯形噪声需要随机化排列表(例如,看这个问题或这个例子 )。 在某些应用程序中,我们需要坚持排列表的状态。 这可以通过创建表来完成,例如使用 def permutation_table(seed): table_size = 2**10 # arbitrary for this question l = range(1, table_size + 1) random.seed(seed) # ensures the same shuffle for a given seed random.shuffle(l) return l + l # see shared link why l + l; is a detail 并存储它。 我们可以通过每次需要时生成所需的元素来避免存储整个表格吗? 具体来说,目前我存储该表,并使用table[i] (表是一个列表 )调用它。 我可以避免通过计算元素i的函数来存储它,例如get_table_element(seed, i) 。 我知道密码学已经使用块密码解决了这个问题 […]