Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import choice, randrange
- import time
- 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
- class Player(Actor):
- def __init__(self, image, pos, speed):
- Actor.__init__(self, image, pos)
- self.speed = speed
- def update(self):
- if keyboard.right:
- self.x = self.speed
- if keyboard.left:
- self.x = self.speed
- if keyboard.up:
- self.y = self.speed
- if keyboard.down:
- self.y = self.speed
- for sprite in sprites:
- if sprite.colliderect(self):
- sprites.remove(sprite)
- if not len(sprites):
- time_now = time.time()
- time_taken = str(time_now - time_start)
- print('You won in ', time_taken, ' seconds')
- quit()
- def spawnSprites(amount):
- sprites = []
- images = ['masterball']
- 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
- player = Player('trainer', (100, 100), 4)
- sprites = spawnSprites(10)
- time_start = time.time()
- def update():
- for sprite in sprites:
- sprite.update()
- player.update()
- def draw():
- screen.blit('background', (0, 0))
- for sprite in sprites:
- sprite.draw()
- player.draw()
Advertisement
Add Comment
Please, Sign In to add comment