#Imports import pygame, sys, os from pygame.locals import * import random, time #Initialzing pygame.init() #Setting up FPS FPS = 60 FramePerSec = pygame.time.Clock() # Predefined some colors BLUE = (0, 0, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLACK = (0, 0, 0) WHITE = (255, 255, 255) # Constants for the program SCREEN_WIDTH = 400 SCREEN_HEIGHT = 600 SPEED = 5 SCORE = 0 final_score = 0 #Setting up Fonts font = pygame.font.SysFont("Verdana", 60) font_small = pygame.font.SysFont("Verdana", 20) game_over = font.render("Game Over", True, BLACK) background = pygame.image.load("CarRace/assets/AnimatedStreet.png") #Create a white screen DISPLAYSURF = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) DISPLAYSURF.fill(WHITE) pygame.display.set_caption("Game") class Enemy(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.image.load("CarRace/assets/Enemy.png") self.rect = self.image.get_rect() self.rect.center=(random.randint(40,SCREEN_WIDTH-40),0) def move(self): self.rect.move_ip(0, SPEED) if (self.rect.bottom > 600): global SCORE SCORE += 1 self.rect.top = 0 self.rect.center = (random.randint(30, 370), 0) class Player(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.image.load("CarRace/assets/Player.png") self.rect = self.image.get_rect() self.rect.center = (160, 520) def move(self): pressed_keys = pygame.key.get_pressed() #if pressed_keys[K_UP]: #self.rect.move_ip(0, -5) #if pressed_keys[K_DOWN]: #self.rect.move_ip(0,5) if self.rect.left > 0: if pressed_keys[K_LEFT]: self.rect.move_ip(-5, 0) if self.rect.right < SCREEN_WIDTH: if pressed_keys[K_RIGHT]: self.rect.move_ip(5, 0) #Setting up Sprites P1 = Player() E1 = Enemy() #Creating Sprites Groups enemies = pygame.sprite.Group() enemies.add(E1) all_sprites = pygame.sprite.Group() all_sprites.add(P1) all_sprites.add(E1) #Adding new user event INC_SPEED = pygame.USEREVENT + 1 pygame.time.set_timer(INC_SPEED, 1000) #Game Loop while True: #Cycles through all events occuring for event in pygame.event.get(): if event.type == INC_SPEED: SPEED += 0.5 if event.type == QUIT: pygame.quit() sys.exit() DISPLAYSURF.blit(background, (0,0)) scores = font_small.render(str(SCORE), True, BLACK) DISPLAYSURF.blit(scores, (10,10)) #Moves and Re-Draws all Sprites for entity in all_sprites: DISPLAYSURF.blit(entity.image, entity.rect) entity.move() #To be run if there is a collision if pygame.sprite.spritecollideany(P1, enemies): pygame.mixer.Sound("assets/crash.wav").play() time.sleep(0.5) DISPLAYSURF.fill(RED) DISPLAYSURF.blit(game_over, (30, 250)) final_score = font_small.render("Final Score " + str(SCORE), True, BLACK) DISPLAYSURF.blit(final_score, (140,400)) pygame.display.update() for entity in all_sprites: entity.kill() time.sleep(2) pygame.quit() sys.exit() pygame.display.update() FramePerSec.tick(FPS)