raketa.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # Example file showing a circle moving on screen
  2. # Example file showing a circle moving on screen
  3. import pygame
  4. # pygame setup
  5. pygame.init()
  6. screen = pygame.display.set_mode((720, 720))
  7. clock = pygame.time.Clock()
  8. running = True
  9. dt = 0
  10. raketa = pygame.sprite.Sprite()
  11. raketa.original_image = pygame.image.load("raketa.png").convert_alpha()
  12. raketa.original_image = pygame.transform.scale(raketa.original_image, (60, 60))
  13. raketa.image = raketa.original_image
  14. raketa.rect = raketa.image.get_rect(center=(360, 360))
  15. angle = 0
  16. wall2 = pygame.sprite.Sprite()
  17. wall2.image = pygame.Surface((20, 200))
  18. wall2.image.fill("blue")
  19. wall2.rect = wall2.image.get_rect(topleft=(100,300))
  20. wall3 = pygame.sprite.Sprite()
  21. wall3.image = pygame.Surface((20, 300))
  22. wall3.image.fill("green")
  23. wall3.rect = wall3.image.get_rect(topleft=(200,500))
  24. wall = pygame.sprite.Sprite()
  25. wall.image = pygame.Surface((500, 20))
  26. wall.image.fill("red")
  27. wall.rect = wall.image.get_rect(topleft=(360, 300))
  28. everything = pygame.sprite.Group([raketa, wall, wall2, wall3])
  29. player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
  30. velocity = pygame.Vector2(0,0)
  31. acceleration = 500
  32. while running:
  33. # poll for events
  34. # pygame.QUIT event means the user clicked X to close your window
  35. for event in pygame.event.get():
  36. if event.type == pygame.QUIT:
  37. running = False
  38. raketa.rect.center = player_pos
  39. # fill the screen with a color to wipe away anything from last frame
  40. screen.fill("purple")
  41. raketa.image = pygame.transform.rotate(raketa.original_image, angle)
  42. raketa.rect = raketa.image.get_rect(center=raketa.rect.center)
  43. everything.draw(screen)
  44. keys = pygame.key.get_pressed()
  45. if keys[pygame.K_w]:
  46. velocity.y -= acceleration * dt
  47. angle = 0
  48. if keys[pygame.K_s]:
  49. velocity.y += acceleration * dt
  50. angle = 180
  51. if keys[pygame.K_a]:
  52. velocity.x -= acceleration * dt
  53. angle = 90
  54. if keys[pygame.K_d]:
  55. velocity.x += acceleration * dt
  56. angle = 270
  57. player_pos += velocity * dt
  58. if pygame.sprite.collide_rect(raketa, wall):
  59. print("bonk")
  60. if pygame.sprite.collide_rect(raketa, wall2):
  61. print("bonk")
  62. if pygame.sprite.collide_rect(raketa, wall3):
  63. print("bonk")
  64. # flip() the display to put your work on screen
  65. pygame.display.flip()
  66. # limits FPS to 60
  67. # dt is delta time in seconds since last frame, used for framerate-
  68. # independent physics.
  69. dt = clock.tick(60) / 1000
  70. pygame.quit()