将位置映射到数组索引

Redsoxfantom

背景故事:我正在做一个简单的迷宫游戏,其中迷宫是程序生成的。我将迷宫表示为房间的2D阵列,其中4个布尔值存储房间的每个角是否都具有墙。(如果Room.south_wall == false,则表示该房间连接到其南部的房间。)每个房间都可以具有任意长度和宽度。为简单起见,我将其设置为在生成开始时就确定其长度和宽度,并将其应用于所有房间。播放器的位置使用2个浮点数存储,一个是其x坐标,一个是其y坐标。迷宫看起来像这样(黑色粗线是可见的墙,红色细线表示2d数组):

在此处输入图片说明

如您所见,每个房间的长度和宽度为3。我想做的就是根据玩家的位置确定玩家所在的房间。因此,例如,在这种情况下:

在此处输入图片说明

播放器在房间(1,0)中(我已标记房间的原点和中心(1,0)以帮助查看)

我知道这应该是一个简单的问题,但是几天来我一直无法提出任何建议。任何建议将不胜感激。让我知道这是否还不够。

克莱默

如果您具有玩家位置pxpy并且您的房间对齐,从而将room(0,0)居中于(0.0,0.0),则房间的索引为

#include<cmath>
ix = int(std::round(px / room_width));
iy = int(std::round(py / room_height));

此外,作为一般规则,这是最好的做room_widthroom_height恒定的,而不是使用“裸装”(又名魔术)号码,以防万一以后要改变它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将索引数组映射到坐标数组

来自分类Dev

将数组索引映射到矩阵

来自分类Dev

将数组索引映射到矩阵

来自分类Dev

如何将数组索引映射到子集索引?

来自分类Dev

将多维数组中的元素映射到其索引

来自分类Dev

JQ将数组映射到具有索引的对象-如何

来自分类Dev

使用流将数组索引映射到列表

来自分类Dev

使用Swing将物理屏幕位置映射到GraphicsDevice数组

来自分类Dev

内存将数组映射到固定位置

来自分类Dev

如何将联合索引映射到广义位置中的相应索引?

来自分类Dev

如何将联合索引映射到广义位置中的相应索引?

来自分类Dev

将SwiftyJSON映射到数组

来自分类Dev

熊猫将日历映射到索引

来自分类Dev

将数组部分映射到新数组

来自分类Dev

将键数组映射到值数组

来自分类Dev

将数组映射到数组内部

来自分类Dev

将数组映射到对象数组

来自分类Dev

将数组映射到新数组

来自分类Dev

JSON反序列化-使用JSON.NET将数组索引映射到属性

来自分类Dev

JSON反序列化-使用JSON.NET将数组索引映射到属性

来自分类Dev

一致地将字符串映射到数组索引(哈希函数)

来自分类Dev

将数组元素映射到完美的哈希索引NP是否完成?

来自分类Dev

将 x、y 坐标映射到二维数组索引

来自分类Dev

将哈希数组反向映射到哈希

来自分类Dev

自动将数组映射到列表

来自分类Dev

将php数组映射到嵌套的json

来自分类Dev

将数组映射到int Java

来自分类Dev

将表单提交映射到数组

来自分类Dev

将php数组映射到嵌套的json