好吧,标题不太合适,请继续阅读(我找不到更好的)。
注意:使用 Python 2.7,但算法也会有所帮助。
我正在制作一个横向卷轴游戏,在其中我正在生成飞行中的障碍物。我遇到的麻烦是弄清楚如何产生障碍。o_O
我有某种逻辑,但是我在弄清楚整个逻辑时遇到了麻烦。
所以从实现的角度来看,这是我的问题:
我有一个Surface
,我在其中放了一些Element
s,它们都是矩形。
想一想:
0 0 0 0 0 0 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
与上述结构一样,我如何确定是否axb
可以添加一个矩形而不重叠另一个矩形(1s),以及在哪里。此外,在与所有其他对象保持 x 元素(甚至对角线)的距离的情况下,这意味着整个矩形是 (x+3, x+4)。像 if x=1, a=3, b=4
,只有一种可能的安排:
(2s 代表新对象)
2 2 2 0 0 0 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
2 2 2 0 1 1 0
0 0 0 0 0 0 0
0 1 1 0 0 1 1
0 0 0 0 0 1 1
基本上,我需要找到所有的点,从这些点开始,一个矩形的边a
可以b
是左上角。这是如何实现的?
注意:欢迎更好的想法来生成飞行中的障碍!
PS:我在这里和程序员上都问过这个问题,因为我认为这两个网站都属于主题。