2010-11-28 37 views
1

我想弄清楚在2D侧滚动游戏中存储地图对象的最佳方式。如何存储2D边滚动游戏的屏幕对象?

例如,在游戏Doodle Jump中,您跳到的平台如何存储?

我已经有大约它是如何做可能的一些想法..

存储在一个字符串或其他对象定义了每个平台将被放置在平台?例如,如果我定义了像0,10,5,8,6,2,3,4,2,......等字符串,我可以将它们解释为游戏中每个游戏块的x坐标。我猜这个问题可能是很多游戏作品定义的问题。游戏似乎是无止境的,所以预先定义地图似乎是一个坏主意。

我还认为,也许这些作品只是随机的。所以无论何时地图需要新的地图块,它都会随机获得一个x坐标。我认为这看起来非常可行,但是在玩DoodleJump时,它并不表示它们都是随机的。

有没有人有任何想法如何可以存储这些地图对象来引导我在正确的方向?

谢谢!

回答

1

我正在考虑一组增量高度坐标及其各自的宽度坐标(1d或2d数组)。增量是因为不让坐标变大。
您可以使用屏幕尺寸来知道要计算屏幕坐标的平台。当跳跃物体达到一定的屏幕高度阈值时,移动相机,计算新的屏幕坐标,省略掉屏幕的平台并添加进入视野的平台。

您可以事先使用带有最小/最大限制坐标距离的随机性算法来生成数组。使用整数时,我可以在陷入困境之前生成一个相当大的数组。
或者使用相同的种子随机函数,所以它会产生相同的阵列每一次,你可以保持持续下去

0

你可以使用一个随机数发生器,每级固定的种子生成它的实时所以用户每次获得相同的级别。随机数可以从适当值的数组中进行选择。 (我已经在安卓游戏中成功地使用了它。)

0

许多平台游戏存储静态地图平台(即无法操纵/销毁的地图部分 - 马里奥兄弟的地砖。 ,例如)作为预定义的地图。这可以通过使用数组值或alphamap图像来完成。

如果使用数组方法,请使用字节(unsigned char's)而不是int's。

相关问题