Проблема с игрой на pygame
Задали написать простую игру, что с кодом не так понять не могу, делал все по учебнику
import pygame
pygame.init()
class MyBallClass(pygame.sprite.Sprite):
def_init_(self, image_file, speed, location):
pygame.sprite.Sprite._init_(self)
self.image=pygame.image.load('football.png').convert_alpha()
self.image=pygame.transform.scale(self.image, (30,30))
self.rect=self.image.get_rect()
self.rect.left, self.rect.top=location
self.speed=speed
def move(self):
global score, dcore_surf, score_font
self.rect=self.rect.move(self.speed)
if self.rect.left<0 or self.rect.right>screen.get_width():
self.speed[0]=-self.speed[0]
if self.rect.top<=0:
self.speed[1]=-self.speed[1]
score=score+1
score_surf=score_font.render(str(score),1,(0,0,0))
class MyPaddleClass(pygame.sprite.Sprite):
def_init_(self,location=[0,0]):
pygame.sprite.Sprite._init_(self)
self.image=pygame.image.load('footballer.png').convert_alpha()
self.image=pygame.image.transform.scale(self.image,(150,220))
self.rect=self.image.get_rect()
self.rect.left, self.rect.top=location
pygame.init()
screen=pygame.display.set_mode([460,320])
pygame.display.set_caption('Проект "Футболист')
clock=pygame.time.Clock()
myBall=MyBallClass('football.png',[10,20],[20,20])
ballGroup=pygame.sprite.Group(myBall)
paddle=MyPaddleClass([270,150])
lives=3;score=0
score_font=pygame.font.Font(None,50)
score_surf=score_font.render(str(score),1,(0,0,0))
score_pos=[10,10]; done=False;
running=True
while running:
clock.tick(30)
pole_surf=pygame.image.load('pole.png').convert_alpha()
pole_rect=pole_surf.get_rect(center=(230,160))
screen.blit(pole_surf,pole_rect)
for event in pygame.event.get():
if event.type++pygame.QUIT:
running=False
elif event.type==pygame.MOUSEMOTION:
paddle.rect.center=event.pos[0]
if pygame.sprite.spritecollide(paddle, ballGroup, False):
myBall.speed[1]=-myBall.speed[1]
myBall.move()
if not done:
screen.blit(myBall.image, myBall.rect)
screen.blit(paddle.image, paddle.rect)
screen.blit(score_surf, score_pos)
for i in range (lives):
width=screen.get_width()
screen.blit(myBall.image, [width - 40*i, 20])
pygame.display.flip()
if myBall.rect.top>=screen.get_rect().bottom:
lives=lives-1
if lives==0:
final_text1="Конец игры"
final_text2="Количество очков:" + str(score)
ft1_font=pygame.font.Font(None,70)
ft1_surf=ft1_font.render(final_text1,1,(255,0,0))
ft2_font=pygame.font.Font(None,50)
ft2_surf=ft2_font.render(final_text2,1,(255,0,0))
screen.blit(ft1_surf,[screen.get.width()/2-\
ft1_surf.get_width()/2,100])
screen.blit(ft2_surf,[screen.get.width()/2-\
ft2_surf.get_width()/2,200])
pygame.display.flip()
done=True
else:
pygame.time.delay(5000)
myBall.rect.topleft=[50,50]
if even.type==pygame.QUIT:
running=False
pygame.quit()