python - 如何让多个键绑定(bind)在 turtle 图形中同时工作?

标签 python python-3.x turtle-graphics pong python-turtle

我正在用 python 制作一个名为 pong 的游戏。

我能否在 turtle 图形中让 2 只不同的 turtle 同时响应键绑定(bind)?

代码如下:

import turtle


class paddle(turtle.Turtle):
    def __init__(self, x_cord, keybindings):
        super().__init__("square")

        self.color("white")
        self.penup()
        self.goto(x_cord, 0)
        self.turtlesize(stretch_wid=5, stretch_len=1, outline=1)
        self.screen = turtle.Screen()
        self.screen.bgcolor("black")
        self.screen.tracer(0)
        self.screen.listen()
        self.screen.update()

        def up():
            self.goto(self.xcor(), self.ycor() + 10)
            self.screen.update()

        def down():
            self.goto(self.xcor(), self.ycor() - 10)
            self.screen.update()

        self.screen.onkey(up, keybindings[0])
        self.screen.onkey(down, keybindings[1])


paddle_1 = paddle(-350, ["Up", "Down"])
paddle_2 = paddle(350, ["w", "s"])

food.screen.exitonclick()

最佳答案

这曾经是我纠结了很长时间的问题,得出的结论是不可能(请证明我是错的,因为如果有解决方案我很感兴趣).

我已经分析了 this很好的答案,解释了如何绑定(bind)两个箭头键进行对角线移动,但它一次只能一步,就像你的代码如何允许 turtle 同时移动,只要让它们一次移动一步。

无论如何,这种情况促使我进一步拥抱多才多艺的 Pygame python包。

关于python - 如何让多个键绑定(bind)在 turtle 图形中同时工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65453598/

相关文章:

python - 如何区分 2 个非常大的数组?

Python:字符串格式中缺少参数(惰性评估)

python-3.x - Python、base64、 float

python - Pandas 没有在 y 轴上显示 timedelta 所需的结果

python - 与另一个物体接触时改变物体颜色

python - 从 zip 复制文件并同时读取该文件

python - 构建 Python C 扩展

python-3.x - Python 3 Urlopen 在下载的文本文件中添加\xef\xbb\xbf 前缀

python - 如何给 turtle 添加形状

python - turtle 对按键没有反应