繁体   English   中英

Python,AttributeError:“ PlayerPaddle”对象没有属性“ update”

[英]Python, AttributeError: 'PlayerPaddle' object has no attribute 'update'

    import pygame
from pygame.locals import *

class PlayerPaddle(object):
   def __init__(self, screensize):

    self.screensize = screensize

    self.position_x = int(screensize[0]*0.5)
    self.position_y = int(screensize[1]*0.8)

    self.width  = 10
    self.height = 4

    self.rect = pygame.Rect(self.position_x - (self.width*0.5),
                            self.position_y - (self.height*0.5),
                            self.width, self.height)
    self.color = (100, 200, 200)

    self.speed = 5
    self.direction = 0

    def update(self):
        self.position_x += self.direction * self.speed

    def render(self, screen):
        pygame.draw.rect(screen, self.color, self.rect, 0)
        pygame.draw.rect(screen, (0,0,0), self.rect, 1)

def main():
    pygame.init()

    screensize = (600, 700)
    screen = pygame.display.set_mode(screensize)

    clock = pygame.time.Clock()

    player_paddle = PlayerPaddle(screensize)

    running = True

    while running:
        clock.tick(64)


        for event in pygame.event.get():
            if event.type == QUIT:
                running = False

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    player_paddle.direction = 1
                elif event.key == pygame.K_RIGHT:
                    player_paddle.direction = -1
            if event.type == pygame.KEYUP:
                if event.key == pygame.K_LEFT:
                    player_paddle.direction = 0
                elif event.key == pygame.K_RIGHT:
                    player_paddle.direction = 0

        player_paddle.update()

        screen.fill((100, 100, 100))

        player_paddle.render(screen)

        pygame.display.flip()

    pygame.quit()

main()

抱歉,很长的代码。但是,我感到非常沮丧。 为什么我收到“'PlayerPaddle'对象没有属性'update'”错误!

对于我已经能够理解它的def update(self)函数,该函数返回null或smth。。但是那怎么办? 错误在我的事件处理程序中吗? 更新位置是否错误?

看来您的缩进已关闭。 您的方法updaterender__init__方法内缩进。 将它们移出一个压痕级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM