import pygame import random from os import path pygame.init() clock = pygame.time.Clock() width = 600 height = 800 FPS = 60 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption('Car Race') img_dir = path.join(path.dirname(__file__), 'Images') player_sprite = pygame.image.load(path.join(img_dir, 'Car.png')).convert_alpha() background = pygame.image.load(path.join(img_dir, 'road1.png')).convert() background_rect = background.get_rect() sprites = pygame.sprite.Group() enemies = pygame.sprite.Group() # enemy # enemy_sprite = pygame.image.load(path.join(img_dir, 'Audi.png')).convert_alpha() # defining the regions centerR1 = (185 / 2) centerR2 = centerR1 + 185 centerR3 = centerR2 + 185 y = 0 class Player(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) self.image = pygame.transform.scale(player_sprite, (71, 168)) self.rect = self.image.get_rect() self.rect.x = 265 self.rect.y = 540 self.speedx = 0 def update(self): self.speedx = 0 keystate = pygame.key.get_pressed() if keystate[pygame.K_a]: self.speedx = -5 if keystate[pygame.K_d]: self.speedx = 5 self.rect.x += self.speedx if self.rect.x <= 22: self.rect.x = 22 elif self.rect.x >= 600 - (71 + 22): self.rect.x = 600 - (71 + 22) class Enemies(pygame.sprite.Sprite): def __init__(self, car_graphic): pygame.sprite.Sprite.__init__(self) # self.image = pygame.transform.scale(enemy_sprite, (197, 197)) self.original_image = car_graphic self.image = self.original_image self.rect = self.image.get_rect() self.rect.x = random.randrange(22, width - 22) self.rect.y = -500 self.speedy = 0 def update(self): self.speedy = 14 self.rect.y += self.speedy if self.rect.y > height: self.rect.y = 0 - height self.rect.x = random.randrange(0, width) def loadEnemy(): car_names = ['Ambulance.png', 'Audi.png', 'Black_viper.png', 'Mini_truck.png', 'Mini_van.png', 'Police.png', 'taxi.png', 'truck.png'] car_files = [] for image in car_names: car_files.append(pygame.image.load(path.join(img_dir, image)).convert_alpha()) return car_files def createEnemyInstance(): enemy = Enemies(random.choice(enemy_graphic)) sprites.add(enemy) enemies.add(enemy) enemy_graphic = loadEnemy() for i in range(5): createEnemyInstance() # player player_car = Player() sprites.add(player_car) # enemy enemy = Enemies(enemy_graphic) enemies.add(enemy) running = True while running: clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False sprites.update() enemies.update() # Continuous scrolling background rel_y = y % background.get_rect().height screen.blit(background, (0, rel_y - background.get_rect().height)) if rel_y < height: screen.blit(background, (0, rel_y)) y += 14 sprites.draw(screen) enemies.draw(screen) pygame.display.update() pygame.quit()