<p>这行有一个输入错误:</p>
<pre><code> car2y = car2y + car2dx
</code></pre>
<p>应该是:</p>
<pre><code> car2y = car2y + car2dy
</code></pre>
<p>注意最后一个字符被更正为<code>y</code>而不是<code>x</code></p>
<p>不过,使用<code>+=</code>运算符并将其编写为:</p>
<pre><code> car2y += car2dy
</code></pre>
<p>本节中还有其他错误:</p>
<pre><code> if event.type == pygame.KEYUP:
if event.key in (pygame.K_w, pygame.K_s):
car1dx = 0
elif event.key in (pygame.K_a, pygame.K_d):
car1dy = 0
if event.key in (pygame.K_UP, pygame.K_DOWN):
car1dx = 0
elif event.key in (pygame.K_LEFT, pygame.K_RIGHT):
car1dy = 0
</code></pre>
<p>您正在重置错误的变量。您正在重置dy而不是dx,反之亦然,在箭头键部分,您忘记将其更改为car2。像这样:</p>
<pre><code> if event.type == pygame.KEYUP:
if event.key in (pygame.K_w, pygame.K_s):
car1dy = 0
elif event.key in (pygame.K_a, pygame.K_d):
car1dx = 0
elif event.key in (pygame.K_UP, pygame.K_DOWN):
car2dy = 0
elif event.key in (pygame.K_LEFT, pygame.K_RIGHT):
car2dx = 0
</code></pre>
<p>注意:在上面我还将第二个<code>if</code>更改为一个<code>elif</code>。这不会影响代码的正确性,只是在上面已经匹配的情况下避免了不必要的if检查</p>