c# - 为什么使用具有无限世界创建的块(统一 C# 2d 自上而下)
问题描述
我正在制作一个 2D 顶级生存游戏,我有 Perlin-Noise 工作(我根据 Perlin-Noise 值加载不同的精灵)但现在我要在相机视图中生成“地板”并删除相机视图之外的“地板”。当我 google 或查看 YouTube 时,我只看到他们使用块的教程。
我的“地板”是由精灵组成的,我使用碰撞(例如,你不能在山上行走)
现在我想知道使用块是否有好处,因为在每个块中我都必须制作精灵。我的意思是我必须以任何一种方式制作/加载精灵。
所以,我可以:
1)我用例如 3x3 sprites 制作块并加载它们
2)我只是加载需要的精灵(你可以称它为 1x1 块)
我找不到 1) 的任何好处,但所有教程都使用块。所以也许我错过了什么
感谢您的时间 :)
解决方案
我使用有限地图,但想法是相似的。我有一张地图,其中每个单元格的大小为 100*100 米。对于这些单元格中的每一个,我都存储了诸如土地形态(例如丘陵、高山、海洋)、生物群落(沙漠、雪地、森林)和天气之类的高级内容。
对于这些单元中的每一个,我可以使用插值和额外的噪声生成许多较小单元的地图。这些单元包含在同一块中从一个单元到另一个单元变化的信息。
使用大块还可以帮助提高地形的渲染性能,因为它们都可以共享相同的 3d 网格。高度编码在纹理中,着色器访问它。
推荐阅读
- javascript - Codeigniter 验证可防止显示引导模式。我该如何解决?
- html - 如何在 VSTS 中发布 html 报告
- python - 使用 http.server 从 python 脚本显示动态网页
- javascript - 调整窗口大小后如何使图像重新定位?
- swift - 在 Swift 中将可选绑定转换为错误处理的过程是什么?
- android - 将图像从 imageview 上传到 Firebase Android
- c# - 将 webApi 控制器的令牌身份验证添加到现有的 asp.net MVC 5 应用程序
- r - 如何在 R 中使用带有条件的 lapply 以每次仅适合一个元素
- c - 我应该使用块设备而不是 char 设备来读取和写入内存吗?
- html - 为什么不明确:两者都消除了这种重叠?