Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import choice, randrange
- WIDTH = 1280
- HEIGHT = 720
- class Sprite(Actor):
- def __init__(self, image, pos, speed):
- Actor.__init__(self, image, pos)
- self.x_speed = speed
- self.y_speed = speed
- def update(self):
- self.x += self.x_speed
- self.y += self.y_speed
- collided = False
- if self.right >= WIDTH or self.left <= 0:
- self.x_speed = -self.x_speed
- collided = True
- if self.bottom >= HEIGHT or self.top <= 0:
- self.y_speed = -self.y_speed
- collided = True
- if not collided:
- for sprite in sprites:
- if not sprite is self and self.colliderect(sprite):
- self.x_speed = -self.x_speed
- self.y_speed = -self.y_speed
- break
- def spawnSprites(amount):
- sprites = []
- images = ['myimage', 'myimage2', 'myimage3']
- speeds = [-5, 5]
- for sprite in range(amount):
- collided = True
- attempts = 0
- image = choice(images)
- actor = Actor(image)
- while collided:
- collided = False
- attempts += 1
- if attempts > 5000:
- print('Too many sprites!')
- quit()
- actor.pos = (randrange(int(0 + actor.width / 2), int(WIDTH - actor.width / 2)), randrange(int(0 + actor.height / 2), int(HEIGHT - actor.height / 2)))
- for other_sprite in sprites:
- if actor.colliderect(other_sprite):
- collided = True
- break
- sprites.append(Sprite(image, actor.pos, choice(speeds)))
- return sprites
- sprites = spawnSprites(10)
- def update():
- for sprite in sprites:
- sprite.update()
- def draw():
- screen.fill('background', (0, 0))
- for sprite in sprites:
- sprite.draw()
Advertisement
Add Comment
Please, Sign In to add comment