Advertisement
Klokova_Sofi

pygame breakout ball

Jun 4th, 2023
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. import pygame
  2. import math
  3.  
  4. WIDTH = 480
  5.  
  6. class Ball(pygame.sprite.Sprite):
  7.     def __init__(self, x, y, radius, color, speed_x, speed_y):
  8.         #pygame.sprite.Sprite.__init__(self)
  9.         super().__init__()
  10.         self.color = color
  11.         self.radius = radius
  12.         #создаю прозрачнй прямоугольник 30х30, который будет прямоугольником мяча
  13.         self.image = pygame.Surface((radius * 2, radius * 2), pygame.SRCALPHA)
  14.         #накладываю на этот прозрачный квадрат (он теперь хранится в self.image) круг
  15.         pygame.draw.circle(self.image, self.color, (radius, radius), radius)
  16.         self.rect = self.image.get_rect(center = (x, y))
  17.         #self.clock = pygame.time.Clock()
  18.         self.x = x
  19.         self.y = y
  20.         self.speed_x = speed_x
  21.         self.speed_y = speed_y
  22.  
  23.         #self.image = pygame.image.load(filename).convert_alpha()
  24.         #self.rect = self.image.get_rect(center = (x, y))
  25.  
  26.     def update(self, screen):
  27.         self.x = self.x + self.speed_x      #cчитаю новые координаты
  28.         self.y = self.y + self.speed_y
  29.         if self.x > WIDTH - self.radius:    #расписываю отталкивание от правой стены
  30.             self.x = self.x - self.speed_x
  31.             self.speed_x = -self.speed_x
  32.         if self.x < self.radius:            #расписываю отталкивание от левой стены
  33.             self.x = self.x + self.speed_x
  34.             self.speed_x = abs(self.speed_x)
  35.         if self.y < self.radius:            #расписываю отталкивание от потолка (если там
  36.             self.y = self.y + self.speed_y       #все кирпичи закончились, чтобы не улетел)
  37.             self.speed_y = abs(self.speed_y)
  38.         self.rect = self.image.get_rect(center=(self.x, self.y))   #отрисовываю
  39.         screen.blit(self.image, self.rect)
  40.  
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement