<p>我同意SilasRay的观点,即这几乎肯定不是线程阻塞的问题,但是如果是的话:这应该可以解决它(因此,如果不是的话,这是Silas提到的键盘或SDL层的问题)。不管怎样,用你的球拍来制作物体是很重要的,所以无论如何要考虑做这个部分。线程部分位于<code>paddlelisten()</code>。在</p>
<pre><code>import threading
class Paddle(object):
def __init__(self, posx, color):
self.posx = posx
self.posy = 0
self.color = color
@property
def pos():
return (self.posx, self.posy, 10, 75)
def main():
# the logic for the program
p1_paddle = Paddle(50, YELLOW)
p2_paddle = Paddle(1439-60, PINK)
def paddlelisten(paddle, upkey, downkey):
if event.key == upkey:
paddle.posy -= 15
if event.key == pygame.downkey:
paddle.posy += 15
t1 = threading.Thread(target=lambda: paddlelisten(p1_paddle, pygame.K_w, pygame.K_s))
t2 = threading.Thread(target=lambda: paddlelisten(p2_paddle, pygame.K_UP, pygame.K_DOWN))
for t in [t1, t2]:
t.daemon = True
t.start()
while True:
# game loop
pygame.draw.rect(DISPLAYSURF, p1_paddle.color, p1_paddle.pos)
pygame.draw.rect(DISPLAYSURF, p2_paddle.color, p2_paddle.pos)
</code></pre>