- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个基于网格的游戏。
在这个游戏中,您可以放置建筑物、墙壁和道路。
当某些东西被放置在网格中时,我将单元格 ID 设置为该对象 ID。到目前为止一切顺利,一切正常。
当我需要时,我的问题就来了 Bitmask我的墙壁/道路(通过拖动鼠标放置)。
目前我进行位掩码的方式是检查所有相邻的 cells
是否匹配,并相应地设置正确的模型。即,如果西方和北方匹配,我会创建一个弯道。
当我将墙放在已占用的 cells
顶部时,我的问题就来了。我仍然想以图形方式显示墙(红色),但我不能覆盖当前在该 cell
中的内容。
这意味着我的位掩码不会起作用,因为墙不在实际的 grid
中,它只在世界空间中。
墙壁将单元格设置为 id 0
,房屋将单元格设置为 id 1
。我无法覆盖 house 单元格中的 id,因此位掩码(正确地)最终会被破坏。
如何管理这样的场景?
单元格:
public class Cell
{
public int x, z;
public int id;
public GameObject go
}
最佳答案
您可以向网格添加图层,并且只合并同一图层上的单元格。
如果您想避免单元格重叠,请检查其他图层中是否已经存在某些内容。从其他层查找值也将允许您交叉合并单元格,尽管它增加了很多复杂性。
这是一些伪代码:
enum Layer {
Building,
Wall,
Road
}
struct Point {
int x,y;
}
class Cell {
Point point;
int value;
}
class Cells {
Dictionary<Point, Cell> cells; // mapping position to the cell object
Cells(int width, int height) {
for x in width
for y in height
Point point = new Point(x,y);
cells.Add(point, new Cell(point, default))
}
Cell Get(Point point) => cells[point];
}
class Grid {
Dictionary<Layer, Cells> layers; // mapping the layer enum to the cells group object
Grid(int width, int height) {
foreach layer in Layer
layers.Add(layer, new Cells(width, height));
}
Cells GetLayer(Layer layer) {
return layers[layer]
}
int GetValue(Point point, Layer layer) {
return GetLayer(layer).Get(point).value;
}
bool IsValueInAllLayers(Point point, int value) {
foreach layer in Layers
if layer.Get(point).value != value
return false;
return true;
}
}
// program entry point
void Main() {
// construct a 10x10 grid
Grid grid = new Grid(10, 10);
Point mousePoint = new Point(2,2);
// to place a building all layers have to be empty (0)
if(grid.IsValueInAllLayers(mousePoint, 0)) {
grid.SetValue(mousePoint, Layer.Building);
}
}
关于c# - 在基于网格的游戏中放置墙壁/道路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60643615/
我正在制作一个基于网格的游戏。 在这个游戏中,您可以放置建筑物、墙壁和道路。 当某些东西被放置在网格中时,我将单元格 ID 设置为该对象 ID。到目前为止一切顺利,一切正常。 当我需要时,我的问题
我想创建一个交互式 map ,其中道路等的样式为我想要的颜色。现在,我了解了 Mapbox,但这不是我们想要使用的,因为最终它会因为费用而花费我们很多钱。 我一直在互联网上寻找替代方案。我发现了很多拼
我正在尝试用 Java 制作一个正则表达式,它可以粗略地用于匹配某些街道名称。我想这样做,以便给定以下字符串: Then someone decided to go to the high stree
尝试用颜色“标记”一个区域并在该区域放置一个数字: 我在这里说明了它: 数字是静态的,不会改变。 区域标记假设会改变颜色。并且区域标记假设使用周围的街道/道路包围该区域(不仅仅是简单的圆形图) 我会尝
我需要能够使用 V2 或 V3(最好是 3)创建在某种意义上忽略建筑物的路径。 我什至试图创建一个 kml 文件来自己绘制所有路径,然后找到一些方法根据需要打开/关闭它们。 例如。用户想从 A 点到
我在 http://www.41latitude.com/post/1268734799/google-styled-maps 上找到了一个代码片段: [ { featureType: "
我正在使用 Roads Google API 传递一个位置列表,我想根据这些点在最有可能由汽车行驶的道路上画线。 有些地方出了问题,因为有些点没有被线穿过,而且这些线不仅仅使用道路,有些点通过直线穿过
我们如何使用切换按钮在 Mapbox gl js 中突出显示(更改颜色)道路、人行道或自行车道? 最佳答案 您可以使用setPaintProperty更改图层的填充颜色,就像在官方 Mapbox 示例
我正在尝试在道路上绘制一条路径并遵循一些给定的点。我正在使用 Google Directions API 来遵循道路。我在道路上放置了一些标记并将这些点与折线连接起来。我需要遵循红线但是它跟随并绘制蓝
我是一名优秀的程序员,十分优秀!