Advertisement
ada1711

Untitled

Mar 16th, 2023
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. import pygame
  2.  
  3. from Platform import Platform
  4. from Ball import Ball
  5. from Brick import Brick
  6.  
  7. # height and width of the screen
  8. SCREEN_WIDTH = 1024
  9. SCREEN_HEIGHT = 800
  10. level = 0
  11. lives = 3
  12.  
  13. # pygame settings
  14. pygame.init()
  15. pygame.font.init()
  16.  
  17. # font, display, clock and background objects
  18. font = pygame.font.SysFont('Comic Sans MS', 24)
  19. display = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
  20. clock = pygame.time.Clock()
  21. background_image = pygame.image.load('images/background.png')
  22.  
  23. # game levels
  24. level1 = [
  25. [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  26. [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  27. [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  28. [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  29. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  30. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  31. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  32. ]
  33. level2 = [
  34. [0, 0, 1, 2, 3, 3, 2, 1, 0, 0],
  35. [0, 1, 1, 1, 2, 2, 1, 1, 1, 0],
  36. [0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
  37. [0, 0, 1, 1, 1, 1, 1, 1, 0, 0],
  38. [0, 0, 2, 0, 0, 0, 0, 2, 0, 0],
  39. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  40. [0, 2, 0, 2, 0, 0, 2, 0, 2, 0]
  41. ]
  42. level3 = [
  43. [2, 3, 2, 2, 2, 2, 2, 2, 3, 2],
  44. [2, 1, 3, 1, 1, 1, 1, 3, 1, 2],
  45. [2, 3, 1, 3, 1, 1, 3, 1, 3, 2],
  46. [3, 2, 2, 2, 3, 3, 2, 2, 2, 3],
  47. [0, 0, 2, 2, 3, 3, 2, 2, 0, 0],
  48. [0, 0, 2, 0, 3, 3, 0, 2, 0, 0],
  49. [0, 0, 3, 0, 3, 3, 0, 3, 0, 0]
  50. ]
  51.  
  52. bricks = pygame.sprite.Group()
  53.  
  54.  
  55. def add_bricks():
  56. loaded_level = None
  57. if level == 0:
  58. loaded_level = level1
  59. if level == 1:
  60. loaded_level = level2
  61. if level == 2:
  62. loaded_level = level3
  63.  
  64. for i in range(10):
  65. for j in range(7):
  66. if loaded_level[j][i] != 0:
  67. brick = Brick(32+i*96, 32+j*48, loaded_level[j][i])
  68. bricks.add(brick)
  69.  
  70.  
  71. add_bricks()
  72.  
  73. platform = Platform()
  74. ball = Ball()
  75.  
  76. # main game loop
  77. game_on = True
  78. while game_on:
  79. for event in pygame.event.get():
  80. if event.type == pygame.KEYDOWN:
  81. if event.key == pygame.K_ESCAPE:
  82. game_on = False
  83. elif event.type == pygame.QUIT:
  84. game_on = False
  85.  
  86. # platform controls
  87. pressed_keys = pygame.key.get_pressed()
  88. if pressed_keys[pygame.K_a]:
  89. platform.move_platform(-1)
  90. if pressed_keys[pygame.K_d]:
  91. platform.move_platform(1)
  92.  
  93. # checking if all bricks have been destroyed
  94. if len(bricks.sprites()) == 0:
  95. level += 1
  96. if level >= 3:
  97. break
  98. ball.reset_position()
  99. platform.reset_position()
  100. add_bricks()
  101.  
  102. # ball update
  103. ball.update(platform, bricks)
  104.  
  105. # checking if ball has touched the lower edge of the screen
  106. if ball.lost:
  107. lives -= 1
  108. if lives <= 0:
  109. break
  110. ball.reset_position()
  111. platform.reset_position()
  112.  
  113. # updating bricks and the platform
  114. bricks.update()
  115. platform.update()
  116.  
  117. # display background
  118. display.blit(background_image, (0, 0))
  119.  
  120. # display bricks
  121. for brick in bricks:
  122. display.blit(brick.image, brick.position)
  123.  
  124. # display the player and the ball
  125. display.blit(platform.image, platform.position)
  126. display.blit(ball.image, ball.position)
  127.  
  128. # render score
  129. text = font.render(
  130. f'level: {level+1}, Lives: {lives}', False, (255, 0, 255))
  131. display.blit(text, (16, 16))
  132.  
  133. pygame.display.flip()
  134. clock.tick(30)
  135.  
  136. pygame.quit()
  137.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement