Г и сал­ға­раева к а ка­лы­мо­ва ж а орын­таева информатика



Pdf көрінісі
бет111/124
Дата27.10.2023
өлшемі4,51 Mb.
#188602
түріКнига
1   ...   107   108   109   110   111   112   113   114   ...   124
Байланысты:
395 (1)

АРМАН
-
ПВ
 
баспасы
Все
учебники
Казахстана
на
OKULYK.KZ
*
Книга
предоставлена
исключительно
в
образовательных
целях
согласно
Приказа
Министра
образования
и
науки
Республики
Казахстан
от
17 
мая
2019 
года

217


161
elif keys[pygame.K_RETURN] and (self.state == 
STATE_GAME_OVER or self.state == STATE_WON):
self.init_game()
def move_ball(self):
self.ball.left += self.ball_vel[0]
self.ball.top += self.ball_vel[1]
if self.ball.left <= 0:
self.ball.left = 0
self.ball_vel[0] = -self.ball_vel[0]
elif self.ball.left >= MAX_BALL_X:
self.ball.left = MAX_BALL_X
self.ball_vel[0] = -self.ball_vel[0]
if self.ball.top < 0:
self.ball.top = 0
self.ball_vel[1] = -self.ball_vel[1]
elif self.ball.top >= MAX_BALL_Y:
self.ball.top = MAX_BALL_Y
self.ball_vel[1] = -self.ball_vel[1]
def handle_collisions(self):
for brick in self.bricks:
if self.ball.colliderect(brick):
self.score += 3
self.ball_vel[1] = -self.ball_vel[1]
self.bricks.remove(brick)
break
if len(self.bricks) == 0:
self.state = STATE_WON
if self.ball.colliderect(self.paddle):
self.ball.top = PADDLE_Y - BALL_DIAMETER
self.ball_vel[1] = -self.ball_vel[1]
elif self.ball.top > self.paddle.top:
self.lives -= 1
if self.lives > 0:
self.state = STATE_BALL_IN_PADDLE
АРМАН
-
ПВ
 
баспасы
Все
учебники
Казахстана
на
OKULYK.KZ
*
Книга
предоставлена
исключительно
в
образовательных
целях
согласно
Приказа
Министра
образования
и
науки
Республики
Казахстан
от
17 
мая
2019 
года

217


162
else:
self.state = STATE_GAME_OVER
def show_stats(self):
if self.font:
font_surface = self.font.render("SCORE: " + 
str(self.score) + "LIVES: " + str(self.lives), False, 
WHITE)
self.screen.blit(font_surface, (205,5))
def show_message(self,message):
if self.font:
size = self.font.size(message)
font_surface = self.font.render(message,False, 
WHITE)
x = (SCREEN_SIZE[0] - size[0]) / 2
y = (SCREEN_SIZE[1] - size[1]) / 2
self.screen.blit(font_surface, (x,y)) 
def run(self):
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
self.clock.tick(50)
self.screen.fill(BLACK)
self.check_input()
if self.state == STATE_PLAYING:
self.move_ball()
self.handle_collisions()
elif self.state == STATE_BALL_IN_PADDLE:
self.ball.left = self.paddle.left + self.
paddle.width / 2
self.ball.top = self.paddle.top - self.ball.
height
self.show_message("PRESS SPACE TO LAUNCH 
THE BALL")
elif self.state == STATE_GAME_OVER:
self.show_message("GAME OVER. PRESS ENTER 
TO PLAY AGAIN")


Достарыңызбен бөлісу:
1   ...   107   108   109   110   111   112   113   114   ...   124




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет