我正在嘗試制作一個基本的 Pong,但我不明白為什么螢屏中間會顯示箭頭/烏龜。
螢屏上的槳由存盤在self.paddle. 我知道這個問題與 ,p = Paddle()但我不明白箭頭物件在哪里,因為它似乎不在上面提到的串列中 ( print(self.paddle))。有人可以啟發我嗎?
from turtle import Turtle, Screen
screen = Screen()
screen.setup(width=1000, height=700)
class Paddle(Turtle):
def __init__(self):
super().__init__()
self.paddle = []
self.create_player_paddle()
def create_player_paddle(self):
for pad in range(0, 6):
x = -480
y = 30
p = Turtle(shape="square")
p.turtlesize(0.5)
p.penup()
p.goto(x, y)
self.paddle.append(p)
for part in range(len(self.paddle)):
self.paddle[part].goto(x, y)
y -= 10
p = Paddle()
screen.update()
screen.exitonclick()
uj5u.com熱心網友回復:
我不明白箭頭物件在哪里,因為它似乎不在上面提到的串列中......有人可以啟發我嗎?
通常情況下,像一個類Paddle()或者ISA Turtle或包含的一個或多個實體Turtle。但是您已經完成了兩者,它既是一個Turtle(您的神秘箭頭的來源),又包含了一個list海龜。簡單的解決方法是洗掉Turtle它的超類并洗掉super().__init__()代碼:
class Paddle():
def __init__(self):
self.paddle = []
self.create_player_paddle()
以下是我對您的代碼的返工,以解決上述問題和我看到的其他問題:
from turtle import Turtle, Screen
class Paddle():
def __init__(self):
self.segments = []
self.create_player_paddle()
def create_player_paddle(self):
x = -480
y = 30
for _ in range(6):
segment = Turtle(shape='square')
segment.turtlesize(0.5)
segment.penup()
segment.goto(x, y)
self.segments.append(segment)
y -= 10
screen = Screen()
screen.setup(width=1000, height=700)
paddle = Paddle()
screen.exitonclick()
在turtle 中進行Pong 游戲的通常方法是使paddle 成為其子類,Turtle然后使用它shapesize()來將turtle 拉伸成您想要的矩形。但這在碰撞檢測方面存在問題。您的方法使槳變得更加復雜,但由于您可以測驗每個段,因此在碰撞檢測方面可能會更好地作業。
uj5u.com熱心網友回復:
如果您需要隱藏 Turtle 指標,請放入Turtle.hideturtle(self)您的建構式 init 函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390130.html
