PRACTICE CODE SNIPPETS

PRACTICE CODE SNIPPETS

Search This Blog

python car game

 import pygame,sys

from pygame.locals import *
import random, time

#Initializing
pygame.init()

collided = False
score = 0

#Setting up FPS to limit the number of executions per second
FPS = 60 # Execute the loop 60 times a second
FramePerSec = pygame.time.Clock()

#Creating colors
RED   = (255, 0, 0)
WHITE = (255, 255, 255)

#Create a white screen  
screen = pygame.display.set_mode((400,600))

pygame.display.set_caption("Game")

class Enemy(pygame.sprite.Sprite): # Enemy car(Red)
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("enemy.png")
        self.surf = pygame.Surface((50, 80))
        self.rect = self.surf.get_rect(center = (random.randint(40, 360),0))    
 
    def move(self):
        global collided
        global score
        if collided: # Pause the game for 2 second if collided
            time.sleep(2)
        self.rect.move_ip(0,10)
        # Start a new enemy if collided or crosses the window
        if self.rect.bottom > 600 or collided:
            self.rect.top = 0
            self.rect.center = (random.randint(30, 370), 0)
            collided = False
            score += 1
       
    def draw(self, surface):
        surface.blit(self.image, self.rect)
 
 
class Player(pygame.sprite.Sprite): # Player car(Blue)
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("Player.png")
        self.surf = pygame.Surface((50, 100))
        self.rect = self.surf.get_rect(center = (150, 500))

    def update(self): # Move player on keypress
        pressed_keys = pygame.key.get_pressed()
        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)
 
    def draw(self, surface):
        surface.blit(self.image, self.rect)    
 
#Setting up Sprites        
P1 = Player()
E1 = Enemy()

#Creating Sprites Groups
enemies = pygame.sprite.Group()
enemies.add(E1)

while True:    
    # Quit game on pressing the close button
    for event in pygame.event.get():              
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    P1.update()
    E1.move()
    screen.fill(WHITE)
   
    # To be run if collision occurs between Player and Enemy
    if pygame.sprite.spritecollideany(P1, enemies):
        screen.fill(RED)
        collided = True
        score = 0
       
    P1.draw(screen)
    E1.draw(screen)
   
    # Display score
    font = pygame.font.Font(None, 24)
    scoretext = font.render('Score: '+str(score), True, (0,0,0))
    textRect = scoretext.get_rect()
    textRect.topleft=[20,10]
    screen.blit(scoretext, textRect)

    pygame.display.update()
    FramePerSec.tick(FPS)

No comments:

Post a Comment

Practice and let me know for nw code snippets