[英]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。。但是那怎么办? 错误在我的事件处理程序中吗? 更新位置是否错误?
看来您的缩进已关闭。 您的方法update
和render
在__init__
方法内缩进。 将它们移出一个压痕级别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.