问题标签 [tiles-game]

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 投票
2 回答
1838 浏览

java - java 游戏 - 光滑 - 碰撞处理

如何管理 slick 中的碰撞?

我创建了地图,每一个墙的瓷砖都有选项blocked = true;

如何实现碰撞,如果我撞到墙,我可以通过它?此外,如果我到达地图边缘,请阻止移动。

这是示例源代码(NetBeans 项目):

https://www.box.com/s/9nicp0n067de632kcpj3

0 投票
1 回答
1344 浏览

android - Eclipse - Android 应用程序 - 方形瓷砖菜单

Eclipse- Android 应用程序我正在尝试制作一个“方形”按钮菜单 - 连续 3 个按钮 - 每个按钮都有一个背景图像......

我能够使列的重量相等,但我不知道如何使按钮的高度始终等于它们的宽度,因为: - 我将来会在应用程序中添加更多行,所以我不希望布局特定于一定数量的行;即:无论行数是多少,按钮都应该是方形的(当然,在任何设备屏幕尺寸上) - 我希望背景图像能够根据按钮自行调整;即:按钮保持正方形,背景图像符合它

到目前为止,这是我的代码:(只有三行具有相同的 bg 图像

0 投票
1 回答
5114 浏览

python - 如何优化pygame中的平铺渲染?

我正在制作基于图块的游戏,并且需要每帧渲染地图。现在,每个瓦片是 32X32,可见地图是 28X28 瓦片。表现是可怕的。我最近让它只渲染可见的瓷砖,但这仍然没有提高 FPS。现在我正在寻找一种加快渲染速度的方法。我将缓慢归因于我的渲染方式;每个图块都单独传送到屏幕上。这样做会更有效吗?

0 投票
1 回答
2787 浏览

arrays - 地图中的 Python Pygame 2D 游戏时间

好吧,我以前试过问这个,但我还没有真正到达任何地方。我希望我能解释我想做的足够好。我将通过我到目前为止的所有代码。

  • 我试图创建一个 2D 游戏,就像练习更好地了解 pygame 和 python。
  • 游戏将基本上像NES Zelda游戏(第一个)
  • 现在我想重新创建一个自上而下的屏幕。网格上 16x16 像素的简单精灵。
  • 现在在你们的大力帮助下,我已经了解了如何使用两个“for”语句(上图)在一个漂亮的紧凑 def 中创建网格。

    /li>
  • 现在我想做的是从另一个文件中获取地图,从 png 文件中绘制出网格上的图块。所以如果我的屏幕是 8 x 4 块:

    /li>
  • 因此,我可以以某种方式将其导入到 maparray 中,以便每个图块都有正确的 .png 文件显示在网格上。我将如何让这种情况发生?下面是我的代码。

    /li>
0 投票
1 回答
177 浏览

opengl - 翻译帧缓冲区

我在屏幕上绘制瓷砖地图,并在 FBO 中绘制每个瓷砖灯(灰度)。都是四边形。

我将视图存储在 Rect 中。要移动,我改变 de Rect,然后我这样做......

我只在矩形内绘制瓷砖。

问题是FBO。我必须绘制相同的瓷砖(瓷砖的灯),这是可见的。

我想知道是否有更好的方法,使用瓷砖的偏移量将相同的瓷砖绘制到 fbo,在不完全可见时在边界上绘制一个较小的四边形,并更改 texcoord,因为当我在 FBO 之外绘制时, 它画在对面。

我使用 FBO,因为我将着色器应用于灯光。

如果我不移动视图,它会完美运行,但如果我移动,我不知道如何在 FBO 上绘图。

0 投票
4 回答
169 浏览

java - 从数组列表中安全地删除数据

我有一个数组列表,其中包含瓷砖。当我放下新瓷砖时,新瓷砖会放在旧瓷砖上,但旧瓷砖仍然在那里,可能会导致问题。例如,有一块玩家无法穿过的石块。在那里放置了一块空气砖,据说可以让玩家穿过。但是,石块永远不会被删除,因此玩家无法通过,因为石块是实心的并会导致碰撞。我可以从数组列表中删除磁贴吗?我不认为我可以,因为列表中的其余数据将“移动”并填补旧瓷砖曾经所在的洞。我怎样才能删除磁贴并在其上放置一个新磁贴而不导致其余数据移动?

0 投票
3 回答
1916 浏览

algorithm - 矩形网格算法中转弯最少的路径

我在算法中被困了 4 天。我正在开发麻将 Safari 类型的游戏(http://www.pogo.com/games/mahjongsafari),我想在两个瓷砖之间开发路径,并且瓷砖数量最少。

我已经在曼哈顿 Hueristic 中应用了 A* 算法,但它会生成有很多转弯的最短路径。不需要最短路径,我只需要最小转弯的路径(最好是2)。下面是来自 Mahjong Safari 游戏的图像,它在 2 个磁贴之间生成路径。您会注意到从 A 到 B 的路径和从 B 到 A 的路径是不同的。

在此处输入图像描述

请以任何代码或任何算法名称或任何您认为可行的逻辑帮助我。

编辑:我申请的解决方案:

我首先使用真正的 A* 算法来寻找最短路径,并使用曼哈顿距离作为启发式目标估计。为了使路径更直,并选择转弯次数最少的路径,我在每次迭代中使用了以下策略:

}

0 投票
2 回答
537 浏览

math - Set of tiles - calculate outline path

Problem (psuedo) How to find the outline of a set of tiles? Let's assume we have three tiles, at the x/y coordinates A[20,20], B[20,30] and C[30,30] (this will make a simple L-shape). Those points represent the centers of the tiles. Each tile has 4 vertexes: TL (top left), TR, BL (bottom left) and BR. Together, the 3 tiles have 8 unique (non-overlapping) vertexes.

We want the red line (path), defined by green dots (vertexes): http://img7.imageshack.us/img7/2469/lshapetiles.png

Needed solution The output of the algorithm should be a path that forms the outline shape of the tiles, consisting out of these vertexes - in this order: A TL, A TR, A BR, C TR, C BR, C BL, B BL, B TL (and optional, A TL again, to close). See the red line.

Possible solution(s) One option is to iterate over all the tiles, and for each tile check: + does it have a neighbor above? If not, at TL and TR to path + does it have a neighbor on the right? If not, at TR and BR to path + does it have a neighbor underneath? If not, at BL and BR to path + does it have a neighbor on the left? If not, at TL and BL to path

If you only add the found vertexes to the path if they're not added already yet, you've succesfully collected the unique vertexes for the path. However, they might be in the wrong order. This is a (the) problem.

Does someone know of a good solution (algorithm) for this?

0 投票
2 回答
114 浏览

java - 2D Tiled Game - 使用新的坏数据

在我的 2D Tiled 游戏中,我遇到了一个问题,当我在另一个内部的 for 循环中从 2D 数组中更新所有对象时(在 2D 数组中从左上角到右下角逐行循环(如下面的代码)) , 如果程序在索引 (5,6) 处循环并且它需要来自自身下的对象的数据,它将使用他在循环处 (5,5) 时执行的新数据,但我想使用双 for 循环开始之前的所有数据...

一个基本的例子:

它会立即将数据“1”放在(x,10)处,而不考虑它会产生错误......(ArrayOutOfBoundsException......)

当他还没有开始双循环时,我怎样才能让它使用数组的数据?


我知道它会生成 ArrayOutOfBoundExecption,并且如果我可以像我在这里完成的那样更正它


0 投票
0 回答
407 浏览

android - 找到 TileMap 的角单元?

检测瓦片地图角单元时的问题???

它计算屏幕x/y而我想给出地图x/y

并给出结果 nullpointer 异常.... 意思是在 perticuler 位置找不到单元格。

如何在LibGdx中找出任何Tilemap的角单元?