Android OpenGL 游戏

6

我正在尝试使用OpenGL开发一个2D游戏,目标平台是Android。

我知道如何在屏幕上打印图像并使其动起来。但是,在我的游戏中,我有一张地图,并且想要对地图进行缩放和滚动。但我无法找到最佳的方法。

有人可以帮助我吗?


你能具体说明一下吗?你需要关于OpenGL的建议吗?还是你正在寻求有关架构和2D游戏设计方面的意见?目前我很难弄清楚你的实际问题。所以,我希望你能为我澄清一下,这样我可能就能帮到你了:)。 - Stefan Schmidt
1
你应该了解一些基本的平铺(Tiling)概念。我指向我的之前的问题链接:https://dev59.com/yXI95IYBdhLWcg3w2Rzz - Dullahx
2个回答

1

我没有任何API示例,但我在大学学习了游戏设计,所以我会给出我的两分建议。

你使用的方法将取决于你的地图风格、大小、功能和格式。

例如,如果你正在寻找非常静态且不变的地图,则使用简单的图片。你可以使用图片视图的API框架,使你能够像在画廊中一样放大和缩小,并在缩放图像时滚动,或者在这种情况下,在地图上缩放位置。

另外,如果你的地图基于平铺系统,一个很好的例子是旧款Game Boy上的原始宝可梦和塞尔达传说游戏,那么每个区域都会为自己存储一个瓷砖“缩略图”作为位图。然后根据发现的区域,将它们放置在网格的适当位置。

这可能是构建地图最灵活的方式,因为你不依赖于整个地图的设置位图,这意味着它可以高效地改变其外观;你可以按需构建它以显示所选区域(对于仅显示玩家覆盖的地方的地图非常有用),而且这还意味着你可以进行基于瓷砖的叠加:

即,如果某个区域应该包含宝藏,则在地图网格上这些瓷砖的x、y位置上覆盖一个宝藏图标。

我在大学的游戏项目中使用了平铺选项,这使得其他与地图相关的事情变得更加容易。它还使得地图方面的存储更小。


0

最简单的方法就是在渲染地图之前调用glTranslatef(-scrollX,-scrollY,0),然后再调用glScalef(zoom,zoom,zoom)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接