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
相关产品推荐
相关产品推荐

