【发布时间】:2021-11-18 22:38:37
【问题描述】:
我正在尝试制作乒乓球游戏。在它里面,我想要一个带有输入的平滑移动桨(例如,按 w 它将向上移动而不会移动一次,然后在按下键时重复)我希望它在按下键时开始重复。所以只要你按一下键,它就不会轻微地摇晃然后开始移动,它会平稳地向上移动。
game: bool = True
win = turtle.Screen()
win.setup(width=800, height=600)
win.tracer(0)
# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)
# Paddle B
paddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("white")
paddle_b.shapesize(stretch_wid=5, stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)
# Functions
def paddle_a_up():
if paddle_a.ycor() + 70 < 300:
y = paddle_a.ycor()
y += 20
paddle_a.sety(y)
def paddle_a_down():
if paddle_a.ycor() - 70 > -300:
y = paddle_a.ycor()
y -= 20
paddle_a.sety(y)
def paddle_b_up():
if paddle_b.ycor() + 70 < 300:
y = paddle_b.ycor()
y += 20
paddle_b.sety(y)
def paddle_b_down():
if paddle_b.ycor() - 70 > -300:
y = paddle_b.ycor()
y -= 20
paddle_b.sety(y)
# Keyboard binding
win.listen()
win.onkeypress(paddle_a_up, "w")
win.onkeypress(paddle_a_up, "W")
win.onkeypress(paddle_a_down, "s")
win.onkeypress(paddle_a_down, "S")
win.onkeypress(paddle_b_up, "Up")
win.onkeypress(paddle_b_down, "Down")
while game:
win.update()
【问题讨论】:
-
onkeypress应该只设置全局变量,即。move_up = True和onkeypress应设置为move_up = False。在while game你应该检查move_up并移动它
标签: python python-turtle