- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以在做一个小项目的同时考虑让 map 更高效。我有一个数字网格
100110
011011
010110
如果您曾经玩过地牢守护者,您的想法是 0 是一个平坦的挖方 block ,而 1 是一个静止的方 block 。我想利用网格布局并能够最大限度地减少使用的顶点数。因此,不要将单个立方体用于像这样的区域:
1111
1111
1111
我只想使用 8。关于最好的方法有什么想法吗?甚至只知道我应该使用的算法类型的名称。可以在运行中快速完成的东西会更好,而不是瓶颈渲染。
最佳答案
我同意这可能不会成为性能问题,但您可以通过使用(稍微修改过的)不平衡四叉树在压缩 map 中表示您的 map 。
从仅由 1 组成的 map 开始。您可以将其作为大小为 n*n 的框存储在树的根节点中。
如果你想挖掘出其中一个盒子,你可以递归地沿着树走下去,使用默认的四叉树规则分割 n*n 盒子(或你在那里找到的任何东西)(= 分割一个 n*n 盒子分成四个 n/2*n/2 个盒子,等等)。在某个时候,您将到达只包含单个盒子(您想要挖掘的盒子)的树叶,您可以将它从 1 更改为 0。
此外,在叶子发生变化并且您的递归调用返回(= 您沿着树向根节点返回)之后,您可以检查相邻的框是否可以合并。 (如果你有两个相邻的盒子都被挖出来了,你可以合并它们)。
在像这样索引低维数据时有时会使用的另一种技术是空间填充曲线。具有良好平均局部性且可逆的曲线是希尔伯特曲线。基本上,您可以沿着空间填充曲线枚举您的框(挖出的和填充的),然后使用简单的游程压缩。
tree-idea 允许您减少渲染几何体的数量(您可以重新缩放纹理等,以通过单个较大的框模拟 n*n 个框)。空间填充曲线可能只会为您节省一些内存。
关于algorithm - Dungeon Keeper 2 样式贴图,顶点压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11297570/
我正在尝试获取应用内结算示例 Dungeons,我有一个带有我的公共(public) ID 的应用程序草稿,并且我已经发布了非托管项目 potion_001。我在设备上使用与注册商家帐户相同的谷歌帐户
我正在为我的 C++ 类开发 Dungeon Crawler,在更新/显示代表我的角色的数组元素时遇到了问题。 ‘up’、‘left’、‘right’功能正常(IE,x/y位置对应的数组元素增加或减少
我无法弄清楚这一点,我的地牢打印不正确(问题和输出在底部)。这将是一些代码,但这都是必要的。 这是地牢构造函数: public Dungeon ( ) { Random r =
我正在翻译 this ActionScript tutorial将二进制空间划分为 Swift,这样我就可以在我的 rogue-like 游戏中使用它。我遇到了一个障碍。 在文章中,作者这样初始化他的
所以在做一个小项目的同时考虑让 map 更高效。我有一个数字网格 100110 011011 010110 如果您曾经玩过地牢守护者,您的想法是 0 是一个平坦的挖方 block ,而 1 是一个静止
我已经使用 Libgdx 从键盘字符中生成了一个地牢。我决定将数组打印为文本文件。 然而这是我得到的: 而且不一致 我不明白这是怎么回事?我检查了我的算法,没有发现任何错误。 这是我的代码: publ
所以我有一个常见的场景,其中一切都取决于 AJAX 响应,然后可能是更多的 AJAX 响应。 最终发生的事情是在 success() 回调中抛出大量的演示(特定于页面的)代码: $.ajax({
我刚刚在手机中安装了 Dungeons 示例代码。我正在使用 adb 工具通过“usb 调试”在我的计算机中查看消息,但我也想查看 SQLite 表的内容。 我在文档中看不到如何访问这些表?也许它们在
我正在做这个项目 MOOC Java Week 10 Exercise 33 当玩家/吸血鬼位置 X 和 Y 时,我希望将字符串 . 替换为玩家/吸血鬼符号(字符串 @ 和 v)等于网格的 X 和 Y
我是一名优秀的程序员,十分优秀!