{"id":3498,"date":"2022-10-09T23:24:58","date_gmt":"2022-10-09T17:54:58","guid":{"rendered":"https:\/\/cbsepython.in\/?p=3498"},"modified":"2025-06-29T21:48:52","modified_gmt":"2025-06-29T16:18:52","slug":"car-race-python-project","status":"publish","type":"post","link":"https:\/\/cbsepython.in\/car-race-python-project\/","title":{"rendered":"Car Race Python Project using pygame"},"content":{"rendered":"<h2><span style=\"color: #000000;\">Car Race Python Project using pygame<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p>Source Code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import pygame, sys\r\nfrom pygame.locals import *\r\nimport random, time\r\n\r\n#Initialzing \r\npygame.init()\r\n\r\n#Setting up FPS \r\nFPS = 60\r\nFramePerSec = pygame.time.Clock()\r\n\r\n#Creating colors\r\nBLUE  = (0, 0, 255)\r\nRED   = (255, 0, 0)\r\nGREEN = (0, 255, 0)\r\nBLACK = (0, 0, 0)\r\nWHITE = (255, 255, 255)\r\n\r\n#Other Variables for use in the program\r\nSCREEN_WIDTH = 400\r\nSCREEN_HEIGHT = 600\r\nSPEED = 5\r\nSCORE = 0\r\n\r\n#Setting up Fonts\r\nfont = pygame.font.SysFont(\"Verdana\", 60)\r\nfont_small = pygame.font.SysFont(\"Verdana\", 20)\r\ngame_over = font.render(\"Game Over\", True, BLACK)\r\n\r\nbackground = pygame.image.load(\"AnimatedStreet.png\")\r\n\r\n#Create a white screen \r\nDISPLAYSURF = pygame.display.set_mode((400,600))\r\nDISPLAYSURF.fill(WHITE)\r\npygame.display.set_caption(\"Game\")\r\n\r\n\r\n\r\nclass Enemy(pygame.sprite.Sprite):\r\n      def __init__(self):\r\n        super().__init__() \r\n        self.image = pygame.image.load(\"Enemy.png\")\r\n        self.surf = pygame.Surface((42, 70))\r\n        self.rect = self.surf.get_rect(center = (random.randint(40,SCREEN_WIDTH-40)\r\n                                                 , 0))\r\n\r\n      def move(self):\r\n        global SCORE\r\n        self.rect.move_ip(0,SPEED)\r\n        if (self.rect.bottom &gt; 600):\r\n            SCORE += 1\r\n            self.rect.top = 0\r\n            self.rect.center = (random.randint(40, SCREEN_WIDTH - 40), 0)\r\n\r\n\r\nclass Player(pygame.sprite.Sprite):\r\n    def __init__(self):\r\n        super().__init__() \r\n        self.image = pygame.image.load(\"Player.png\")\r\n        self.surf = pygame.Surface((40, 75))\r\n        self.rect = self.surf.get_rect(center = (160, 520))\r\n       \r\n    def move(self):\r\n        pressed_keys = pygame.key.get_pressed()\r\n       #if pressed_keys[K_UP]:\r\n            #self.rect.move_ip(0, -5)\r\n       #if pressed_keys[K_DOWN]:\r\n            #self.rect.move_ip(0,5)\r\n        \r\n        if self.rect.left &gt; 0:\r\n              if pressed_keys[K_LEFT]:\r\n                  self.rect.move_ip(-5, 0)\r\n        if self.rect.right &lt; SCREEN_WIDTH:        \r\n              if pressed_keys[K_RIGHT]:\r\n                  self.rect.move_ip(5, 0)\r\n                  \r\n\r\n#Setting up Sprites        \r\nP1 = Player()\r\nE1 = Enemy()\r\n\r\n#Creating Sprites Groups\r\nenemies = pygame.sprite.Group()\r\nenemies.add(E1)\r\nall_sprites = pygame.sprite.Group()\r\nall_sprites.add(P1)\r\nall_sprites.add(E1)\r\n\r\n#Adding a new User event \r\nINC_SPEED = pygame.USEREVENT + 1\r\npygame.time.set_timer(INC_SPEED, 1000)\r\n\r\n#Game Loop\r\nwhile True:\r\n      \r\n    #Cycles through all events occuring  \r\n    for event in pygame.event.get():\r\n        if event.type == INC_SPEED:\r\n              SPEED += 0.5      \r\n        if event.type == QUIT:\r\n            pygame.quit()\r\n            sys.exit()\r\n\r\n\r\n\r\n    DISPLAYSURF.blit(background, (0,0))\r\n    scores = font_small.render(str(SCORE), True, BLACK)\r\n    DISPLAYSURF.blit(scores, (10,10))\r\n\r\n    #Moves and Re-draws all Sprites\r\n    for entity in all_sprites:\r\n        DISPLAYSURF.blit(entity.image, entity.rect)\r\n        entity.move()\r\n\r\n    #To be run if collision occurs between Player and Enemy\r\n    if pygame.sprite.spritecollideany(P1, enemies):\r\n          pygame.mixer.Sound('crash.wav').play()\r\n          time.sleep(1)\r\n                   \r\n          DISPLAYSURF.fill(RED)\r\n          DISPLAYSURF.blit(game_over, (30,250))\r\n          \r\n          pygame.display.update()\r\n          for entity in all_sprites:\r\n                entity.kill() \r\n          time.sleep(2)\r\n          pygame.quit()\r\n          sys.exit()        \r\n        \r\n    pygame.display.update()\r\n    FramePerSec.tick(FPS)\r\n    \r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Output:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-3500 size-full\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/car1.jpg\" alt=\"\" width=\"414\" height=\"636\" title=\"\" srcset=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/car1.jpg 414w, https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/car1-195x300.jpg 195w\" sizes=\"(max-width: 414px) 100vw, 414px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Images used:<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-3501\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/AnimatedStreet-200x300.png\" alt=\"\" width=\"200\" height=\"300\" title=\"\" srcset=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/AnimatedStreet-200x300.png 200w, https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/AnimatedStreet.png 400w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/><\/p>\n<p>Enemy Car:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-medium wp-image-3502\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/Enemy.png\" alt=\"\" width=\"48\" height=\"93\" title=\"\"><\/p>\n<p>Player Car:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3503\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/Player.png\" alt=\"\" width=\"44\" height=\"96\" title=\"\"><\/p>\n<p>&nbsp;<\/p>\n<p>Sound Used:<\/p>\n<p>Game Sound:<\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-3498-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/wav\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/background.wav?_=1\" \/><a href=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/background.wav\">https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/background.wav<\/a><\/audio>\n<p>&nbsp;<\/p>\n<p>Crash Sound:<\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-3498-2\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/wav\" src=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/crash.wav?_=2\" \/><a href=\"https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/crash.wav\">https:\/\/cbsepython.in\/wp-content\/uploads\/2022\/10\/crash.wav<\/a><\/audio>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Car Race Python Project using pygame &nbsp; Source Code: import pygame, sys from pygame.locals import * import random, time #Initialzing pygame.init() #Setting up FPS FPS = 60 FramePerSec = pygame.time.Clock() #Creating colors BLUE = (0, 0, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLACK = (0, 0, 0) WHITE = (255, [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3500,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-3498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python-projects"],"_links":{"self":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts\/3498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/comments?post=3498"}],"version-history":[{"count":1,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts\/3498\/revisions"}],"predecessor-version":[{"id":5374,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts\/3498\/revisions\/5374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/media\/3500"}],"wp:attachment":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/media?parent=3498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/categories?post=3498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/tags?post=3498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}