回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在寻找最简单的方法。我正在尝试实现可以通过鼠标绘制的平台(具有完全碰撞检测)。现在我有一个画线的函数,它可以画一些小的圆,但是它们靠得太近了,或多或少看起来像一条线。最好的解决办法是创造一点pygame.矩形每个圆上的物体?会有很多矩形物体。这不是一个图像,所以像素完美似乎不是一个选择?你知道吗</p>
<pre><code>def drawGradientLine(screen, index, start, end, width, color_mode):
#color values change based on index
cvar1 = max(0, min(255, 9 * index-256))
cvar2 = max(0, min(255, 9 * index))
#green(0,255,0), blue(0,0,255), red(255,0,0), yellow(255,255,0)
if color_mode == 'green':
color = (cvar1, cvar2, cvar1)
elif color_mode == 'blue':
color = (cvar1, cvar1, cvar2)
elif color_mode == 'red':
color = (cvar2, cvar1, cvar1)
elif color_mode == 'yellow':
color = (cvar2, cvar2, cvar1)
dx = end[0] - start[0]
dy = end[1] - start[1]
dist = max(abs(dx), abs(dy))
for i in xrange(dist):
x = int(start[0]+float(i)/dist*dx)
y = int(start[1]+float(i)/dist*dy)
pygame.draw.circle(screen, color, (x, y), width)
</code></pre>
<p>这就是我的绘图功能。这是我的循环,我把它放在我的主要比赛项目循环中。你知道吗</p>
<pre><code> i = 0
while (i < len(pointList)-1):
drawGradientLine(screen, i, pointList[i], pointList[i + 1], r, mode)
i += 1
</code></pre>
<p>感谢您的帮助,碰撞检测现在让我非常头疼(我的瓷砖也无法正确使用……)。你知道吗</p>