import pygame from random import randint fallers_size = 3 fallers = ["images/garbage_%02d.png" % faller_number for faller_number in xrange(1, fallers_size + 1) ] class Garbage: def __init__(self, screen_w, screen_h, unit, garbage_speed, position): self.unit = unit self.speed = garbage_speed self.image = pygame.image.load(fallers[randint(0, fallers_size - 1)]) self.alert_image = pygame.image.load("images/atention.png") image_rect = self.image.get_rect() size_reduction = 5*unit self.collision_rect = pygame.Rect(image_rect.left + size_reduction, \ image_rect.top + size_reduction, \ image_rect.width - size_reduction, \ image_rect.height - size_reduction) self.position = position self.screen_w = screen_w self.screen_h = screen_h self.direction_x = 0 self.direction_y = 0 def update(self): image_center = self.image.get_width()/2 self.position = [(self.position[0] - randint(0, self.speed) ), \ (self.position[1] - randint(0, self.speed) ) ] def collides_with(self, other): return self.get_absolute_rect().colliderect(other.get_absolute_rect()) def draw(self, on_surface): on_surface.blit(self.image, self.position) def died_x(self): return self.position[0] < 0 def died_y(self): return self.position[1] < 0 def draw_alert(self, on_surface): on_surface.blit(self.alert_image, self.position) def get_absolute_rect(self): return self.collision_rect.move(self.position)