【问题标题】:Pong Game: Paddle Won't Move with Input (Python)乒乓球游戏:桨不会随输入移动(Python)
【发布时间】:2022-11-11 02:48:37
【问题描述】:

我是尝试制作 Pong 游戏的 Python 新手。我用 Turtle Graphics 模块创建了一个 Paddle 类,但我无法让桨移动。我只想从一个方向开始,然后从那里向下不应该太难。谁能看到我的方法做错了什么?

from turtle import Turtle

COORDINATES = [(350, 20), (350, 0), (350, -20)]
X_COORDINATES = [350, 350, 350]
Y_COORDINATES = [20, 0, -20]


class Paddle(Turtle):

    def __init__(self):
        super().__init__()
        self.paddle = []
        self.create_paddles()
        self.coordinate_number = 0

    def create_paddles(self):
        for coordinates in COORDINATES:
            self.paddle_block = Turtle(shape='square')
            self.paddle_block.goto(coordinates)
            self.paddle_block.color('white')
            self.paddle.append(self.paddle_block)

    def w(self):
        global Y_COORDINATES
        Y_COORDINATES = [coordinate + 100 for coordinate in Y_COORDINATES]

        for self.paddle_block in self.paddle:
            self.paddle_block.goto(X_COORDINATES[self.coordinate_number], Y_COORDINATES[self.coordinate_number])
            self.coordinate_number += 1
        self.coordinate_number = 0

我试图遍历 y 坐标并用我的函数添加到它们中的每一个。从那里,我尝试遍历每个桨块并将其当前位置移动到新位置,并采用新更新的 y 坐标。我期待运动,但我没有看到任何运动。

【问题讨论】:

    标签: python turtle-graphics pong


    【解决方案1】:

    这不是解决这个问题的常用方法,但我可以理解为什么它可能是有利的。您的主要问题似乎无法确定应该是什么全球的, 应该是什么当地的,什么应该是财产.让我们通过这项工作来演示所有三个的用法:

    from turtle import Screen, Turtle
    
    COORDINATES = [(350, 20), (350, 0), (350, -20)]
    
    class Paddle(Turtle):
    
        def __init__(self):
            super().__init__()
    
            self.paddle = []
            self.coordinates = list(COORDINATES)  # make copy
    
            self.create_paddles()
    
        def create_paddles(self):
            for coordinate in self.coordinates:
                paddle_block = Turtle(shape='square', visible=False)
                paddle_block.penup()
                paddle_block.color('white')
                paddle_block.goto(coordinate)
                paddle_block.showturtle()
    
                self.paddle.append(paddle_block)
    
        def move_up(self):
            self.coordinates = [(x, y + 10) for x, y in self.coordinates]
    
            for coordinate_number, paddle_block in enumerate(self.paddle):
                paddle_block.goto(self.coordinates[coordinate_number])
    
        def move_down(self):
            self.coordinates = [(x, y - 10) for x, y in self.coordinates]
    
            for coordinate_number, paddle_block in enumerate(self.paddle):
                paddle_block.goto(self.coordinates[coordinate_number])
    
    screen = Screen()
    screen.bgcolor('black')
    
    paddle_1 = Paddle()
    
    screen.onkey(paddle_1.move_up, 'w')
    screen.onkey(paddle_1.move_down, 's')
    
    screen.listen()
    screen.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多