Весь код:
При запуске программы два созданных спрайта не отлитают друг от друга!
Python:
from random import *
class personass(pygame.sprite.Sprite): # Создаём спрайт персонажа
def __init__(self, image_file2, location2, speed):
pygame.sprite.Sprite.__init__(self) # Инициализируем спрайт
self.image = pygame.image.load(image_file2)
self.rect = self.image.get_rect() # Создаём хит-бокс персонажу
self.rect.left, self.rect.top = location
self.speed = speed
def move(self): # Создаём фуннкцыю для перемещение
self.rect = self.rect.move(self.speed) # Придаём хит-боксу с текстуркой скорость перемещение
if self.rect.left < 0 and self.rect.right > wisota:
self.speed[0] = -self.speed[0]
if self.rect.top < 0 and self.rect.bottom > shirina:
self.speed[1] = -self.speed[1]
def animate(group): # Создаём группу для обнуружение столкновений
screen.fill([0, 0, 0]) # Заливаем экран чёрным цветом perr.move()
for perr in group: # Цыкл для обнуружение столкновений
group.remove(perr) # Удаляем из группы спрайт perr
if pygame.sprite.spritecollide(perr, group, False):
perr.speed[0] = -perr.speed[0]
perr.speed[1] = -perr.speed[1]
group.add(perr) # Добавляем в группу спрайт perr
screen.blit(perr.image, perr.rect)
pygame.display.flip() # Обновляем экран
pygame.time.delay(20) # Ждём 20 мили-сек
size = wisota, shirina = 640, 505
screen = pygame.display.set_mode(size)
screen.fill([0, 0, 0])
img_file2 = '1-бег вправо.png'
sparaiti = pygame.sprite.Group() # Создаём группу спрайтов
for topp2 in range(0, 2):
for cc2 in range(0, 2):
location2 = [cc2 * 180 + 10, topp2 * 180 + 10]
speed2 = [choice([-2, 2]), choice([-2, 2])] # choice это рандом допустим от 1 до 3
perr = personass(img_file2, location2, speed2)
sparaiti.add(perr) # Каждый раз добавляем в группу спрайт
run = True
while run:
animate(sparaiti) # Вызывае функцыю animate и передаём в неё группу
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()