You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.11 Turtle Graphics:Pong游戏按键触发但Paddle无法移动

Pong游戏Paddle无法移动的问题解决

问题根源

你创建的Paddle类继承了Turtle,但额外在内部实例化了一个self.paddle的Turtle对象——屏幕上显示的是这个内部对象,但按键触发的up()/down()方法里,调用的是self.goto()(移动的是继承来的隐藏Turtle实例),而非实际显示的self.paddle,所以视觉上看不到移动,而控制台能打印信息说明按键监听逻辑是正常的。

修正方案(推荐)

直接复用继承的Turtle实例构建 paddle,删除多余的内部self.paddle对象,修改后的Paddle.py代码如下:

from turtle import Turtle

class Paddle(Turtle):
    def __init__(self, starting_coords):
        super().__init__()
        self.shape("square")
        self.color('white')
        self.shapesize(5, 1)
        self.penup()
        self.goto(starting_coords)

    def up(self):
        new_y = self.ycor() + 40
        self.goto(self.xcor(), new_y)
        print("up")

    def down(self):
        new_y = self.ycor() - 40
        self.goto(self.xcor(), new_y)
        print('down')

备选方案(不推荐,仅作参考)

如果坚持保留内部self.paddle对象,需修改up()/down()方法,确保移动的是屏幕上显示的实例:

def up(self):
    new_y = self.paddle.ycor() + 40
    self.paddle.goto(self.paddle.xcor(), new_y)
    print("up")

def down(self):
    new_y = self.paddle.ycor() - 40
    self.paddle.goto(self.paddle.xcor(), new_y)
    print('down')

内容的提问来源于stack exchange,提问作者Juan-789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:43:41