gpt4 book ai didi

python - 使用 .goto() 覆盖 python 龟中先前对象的位置

转载 作者:行者123 更新时间:2023-12-04 07:28:39 25 4
gpt4 key购买 nike

import turtle

wn = turtle.Screen()
wn.title("Pong")
wn.bgcolor("black")
wn.setup(height= 600, width= 800)
wn.tracer(0)

class Paddle:
paddle = turtle.Turtle()
def __init__(self):
self.paddle.speed(0)
self.paddle.color("white")
self.paddle.shape("square")
self.paddle.shapesize(stretch_wid = 5, stretch_len= 1)
self.paddle.penup()
def goto(self,location):
self.paddle.goto(location,0)


paddleA = Paddle()
paddleB = Paddle()

paddleA.goto(350)

paddleB.goto(-350)

# Ball

ball = turtle.Turtle()
ball.speed(0)
ball.color("white")
ball.shape("square")
ball.penup()
ball.goto(0,0)

# Movement Functions

# Game loop
while True:
wn.update()

我希望它显示的是屏幕左侧和右侧的两个桨。但是,在创建的屏幕中只显示一个桨。这个桨将是最后一个调用函数 .goto() .为什么会这样?这种行为的纠正是什么?

最佳答案

您没有创建 唯一可识别 在您的类中,它只是重用了已经构建的同一个实例。

class Paddle:
paddle = turtle.Turtle()
def __init__(self):
print( id(self.paddle) )
self.paddle.speed(0)
self.paddle.color("white")
self.paddle.shape("square")
self.paddle.shapesize(stretch_wid = 5, stretch_len= 1)
self.paddle.penup()
def goto(self,location):
self.paddle.goto(location,0)
def color(self,color):
self.paddle.color(color)

paddleA = Paddle()
paddleB = Paddle()

paddleA.color('red')
paddleB.color('blue')

paddleA.goto(350)
paddleB.goto(-350)

# Ball

ball = turtle.Turtle()
print( id(ball) )
ball.speed(0)
ball.color("white")
ball.shape("square")
ball.penup()
ball.goto(0,0)

3066489872
3066489872
3066490064


将桨结构放在 init 块中:
class Paddle:
def __init__(self):
self.paddle = turtle.Turtle()
print( id(self.paddle) )
self.paddle.speed(0)
self.paddle.color("white")
self.paddle.shape("square")
self.paddle.shapesize(stretch_wid = 5, stretch_len= 1)
self.paddle.penup()
def goto(self,location):
self.paddle.goto(location,0)
def color(self,color):
self.paddle.color(color)

3065846920
3065847064
3065847184

关于python - 使用 .goto() 覆盖 python 龟中先前对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68082059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com