将坐标转换为阵列中的块位置
Converting Coordinates To Block Position In Array
所以我有一个等距映射(但它也可以是2D映射)和一个int[]数组来存储该映射上的所有块ID。
阵列看起来像这样(对于4乘4的块图):
0 0 1 0 0 2 0 1 0 2 1 0 1 0 3 2
这将在地图上转化为这个(第一个正方形):
0 0 1 0 0 0 1 0
0 2 0 1 0 2 X 1
0 2 1 0 0 2 1 0
1 0 3 2 1 0 3 2
第二个正方形上有一个X。
如何计算X在数组中的位置?我试着做基本的乘法:index = fieldWidth + fieldHeight
,但我做不到。
另外,如何使用X在数组中的位置来计算X的坐标?
这可能对任何制作2D/等轴测游戏的人都有用。
当位置为零(=以0开头)时:
index = horizontalPos + verticalPos * 4
如果它以1开始使用:
index = horizontalPos - 1 + (verticalPos - 1) * 4
获取线性阵列中索引为i的X的从零开始的位置:
verticalPos = parseInt(i / 4); horizontalPos = i % 4;
编辑:
要使其通用,请将4替换为地图的列数。
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 根据页面的位置突出显示文本中的字符
- 在位置更改时为阵列项目制作动画
- 在改变阵列位置和以角度动态显示内容时遇到问题
- 将坐标转换为阵列中的块位置