为游戏生成随机背景

时间:2012-03-21 14:53:06

标签: c# opengl opentk

我使用OpenGL(OpenTK)和C#开发2D游戏。 我喜欢随机背景由星星和雾组成。

在我投影的中间是一艘星舰。 星舰可以向任何方向移动。 背景也将在任何方向上动态生成。 我的问题是表现。我渲染了48000个顶点 (6000个带有.png纹理的矩形)用于小型 区域。由于我的星舰正在移动,该地区将会增长。 我的PC:CPU 4 Core x 2300mhz,GeForce 9800 GTX +及其静止 跑得慢。这是正常的吗?

我心中有一个解决方案。渲染区域并为backgroundtexture创建位图。

也许你有更好的解决方案。或者你可以告诉我缺点 动态创建背景纹理。

2 个答案:

答案 0 :(得分:1)

让你提出4x4的观点。

所以你应该渲染一张由1x1的pices组成的5x5图片并将其放在屏幕上。

当你的星舰移动时,你应该产生一张1x5的图片(5个小尺寸1x1的pices)并将它放在你的船前,你应该从另一个方向删除一张图片。如果船向左移动,你应该在左边放一个新的空间,并从右边移除一个pice。等

答案 1 :(得分:1)

如果您只想要滚动纹理背景,则可以根据星舰的位置修改纹理坐标。为了使它看起来更独特,你可以使用一些透明纹理并将它们分层,这将给你一个视差效果。

至于星星,我会使用GL_POINTS。一旦恒星“掉落”可视屏幕的边缘,使其出现在另一侧。再一次,你可以以不同的速度获得更多,因为据我们所知,星星的距离并不相同。

对不起,我不能更具体,但我在工作。