从坐标列表动态创建“漂亮”赛道

时间:2015-06-28 12:40:13

标签: java algorithm graphics 2d

所以我正在为Android创建一个赛车游戏(但这个问题比Java更通用,所以我希望我在正确的地方提出要求)......

对于我的游戏,我动态生成新地图供用户“竞赛”,并允许他们事先预览他们想要比赛的曲目我需要很好,动态绘制预览图像来表示曲目。

我的第一个解决方案是一个简单的角落坐标列表,在它们之间使用基本的drawLine来为用户提供地图的预览,如预期的......但是屏幕上的2D绿线是平淡的,我只是寻找改善它的技巧。我尝试过,稍微改变线条颜色......

也许这最好用一个例子来表示:

上图显示了一个生成的“赛道”预览的一个不好的例子,它是一条急转弯然后结束的有风轨道。

这是一个糟糕的设计,看起来很平淡,会毁掉我游戏中的沉浸......

所以(除了产生更好的曲目!)我怎样才能漂亮 - 如果预览音轨以使其看起来更具吸引力?我知道这是一个非常通用的问题,更多关于设计而不是编程,但我只是想知道是否有人有洞察力或提示:我的意思是我知道我可以在轨道上制作动画/预览ghostrace,但我是在完成预览轨道的整个项目之前,首先要寻找明显的解决方案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你看过Bezier Curves吗?它们是一种用相当少的点定义有吸引力的曲线的方法,并且大多数图形系统可以快速绘制它们。不要太担心数学,只要得到点定义曲线大致方向的概念,可以在图形程序中使用它们,然后用它们编程。我想如果你遵循一个非常简单的规则,不要让这些点彼此太靠近,你应该得到不错的曲线。

然后就设计而言。 。 。我并不是很擅长这一点,但我会从制作更粗的线开始,然后在其中画一条更细的线。尝试不同的颜色组合。也许让中心的细线呈黄色或白色,就像道路条纹一样。