擅长:python、mysql、java
<p>就像<a href="https://stackoverflow.com/users/5771269/cdlane">cdlane</a>在他们的<a href="https://stackoverflow.com/a/67375590/843953">answer</a>中所说的那样,你的海龟只会向前移动。然而,你总是要求它面对你想要的方向,然后让它前进。相反,您应该检查它的当前方向,并且仅当它不与当前方向相反时才允许它移动</p>
<p>这只需要对<code>moveu()</code>函数稍作修改:</p>
<pre><code>def moveu(angle):
current_heading = turtle.heading()
if abs(angle - current_heading) != 180:
turtle.setheading(angle)
turtle.forward(20)
</code></pre>
<p>现在,如果您先按<code>w</code>然后再按<code>s</code>,您的乌龟将不会向下移动。但是,如果您先按<code>w</code>,然后按<code>a</code>,然后按<code>s</code>,您的海龟将首先向左移动,然后向下移动</p>
<p>这里有一个演示:我修改了cdlane的演示,在画布底部添加了另一个海龟来打印状态消息<a href="https://replit.com/@PranavHosangadi/TurtleDemo#main.py" rel="nofollow noreferrer">Code</a>。我在<code>moveu()</code>函数中添加了几行来打印按下的键</p>
<p><a href="https://i.stack.imgur.com/dTfDF.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/dTfDF.gif" alt="enter image description here"/></a></p>