12. Developing a game activity using Pygame like bouncing ball, car race etc.

 

12. Developing a game activity using Pygame like bouncing ball, car race etc.

 

SIMULATE BOUNCING BALL USING PYGAME

 

To write a python program to simulate bouncing ball using pygame.

 

PROGRAM/SOURCE CODE :

 

import sys, pygame

 

pygame.init()

 

size = width, height = 800, 600

 

speed = [1, 1]

 

background = 255, 255, 255

 

screen = pygame.display.set_mode(size)

 

pygame.display.set_caption("Bouncing ball")

 

ball = pygame.image.load("ball.png")

 

ballrect = ball.get_rect()

 

while 1:

 

    for event in pygame.event.get():

 

        if event.type == pygame.QUIT:

 

            sys.exit()

 

    ballrect = ballrect.move(speed)

 

    if ballrect.left < 0 or ballrect.right > width:

 

        speed[0] = -speed[0]

 

    if ballrect.top < 0 or ballrect.bottom > height:

 

        speed[1] = -speed[1]

 

    screen.fill(background)

 

    screen.blit(ball, ballrect)

 

    pygame.display.flip()

OUTPUT

 

 

 

 

 

 

 

 

 

 

RESULT:

 

Thus the program to simulate bouncing ball using pygameis executed and the output is obtained.

 

 

 

12. Developing a game activity using Pygame like car race .

 

PROGRAM/SOURCE CODE :

import random

from time import sleep

 

import pygame

 

 

class CarRacing:

    def __init__(self):

 

        pygame.init()

        self.display_width = 800

        self.display_height = 600

        self.black = (0, 0, 0)

        self.white = (255, 255, 255)

        self.clock = pygame.time.Clock()

        self.gameDisplay = None

 

        self.initialize()

 

    def initialize(self):

 

        self.crashed = False

 

        self.carImg = pygame.image.load('.\\img\\car.png')

        self.car_x_coordinate = (self.display_width * 0.45)

        self.car_y_coordinate = (self.display_height * 0.8)

        self.car_width = 49

 

        # enemy_car

        self.enemy_car = pygame.image.load('.\\img\\enemy_car_1.png')

        self.enemy_car_startx = random.randrange(310, 450)

        self.enemy_car_starty = -600

        self.enemy_car_speed = 5

        self.enemy_car_width = 49

        self.enemy_car_height = 100

 

        # Background

        self.bgImg = pygame.image.load(".\\img\\back_ground.jpg")

        self.bg_x1 = (self.display_width / 2) - (360 / 2)

        self.bg_x2 = (self.display_width / 2) - (360 / 2)

        self.bg_y1 = 0

        self.bg_y2 = -600

        self.bg_speed = 3

        self.count = 0

 

    def car(self, car_x_coordinate, car_y_coordinate):

        self.gameDisplay.blit(self.carImg, (car_x_coordinate, car_y_coordinate))

 

    def racing_window(self):

        self.gameDisplay = pygame.display.set_mode((self.display_width, self.display_height))

        pygame.display.set_caption('Car Dodge')

        self.run_car()

 

    def run_car(self):

 

        while not self.crashed:

 

            for event in pygame.event.get():

                if event.type == pygame.QUIT:

                    self.crashed = True

                # print(event)

 

                if (event.type == pygame.KEYDOWN):

                    if (event.key == pygame.K_LEFT):

                        self.car_x_coordinate -= 50

                        print ("CAR X COORDINATES: %s" % self.car_x_coordinate)

                    if (event.key == pygame.K_RIGHT):

                        self.car_x_coordinate += 50

                        print ("CAR X COORDINATES: %s" % self.car_x_coordinate)

                    print ("x: {x}, y: {y}".format(x=self.car_x_coordinate, y=self.car_y_coordinate))

 

            self.gameDisplay.fill(self.black)

            self.back_ground_raod()

 

            self.run_enemy_car(self.enemy_car_startx, self.enemy_car_starty)

            self.enemy_car_starty += self.enemy_car_speed

 

            if self.enemy_car_starty > self.display_height:

                self.enemy_car_starty = 0 - self.enemy_car_height

                self.enemy_car_startx = random.randrange(310, 450)

 

            self.car(self.car_x_coordinate, self.car_y_coordinate)

            self.highscore(self.count)

            self.count += 1

            if (self.count % 100 == 0):

                self.enemy_car_speed += 1

                self.bg_speed += 1

            if self.car_y_coordinate < self.enemy_car_starty + self.enemy_car_height:

                if self.car_x_coordinate > self.enemy_car_startx and self.car_x_coordinate < self.enemy_car_startx + self.enemy_car_width or self.car_x_coordinate + self.car_width > self.enemy_car_startx and self.car_x_coordinate + self.car_width < self.enemy_car_startx + self.enemy_car_width:

                    self.crashed = True

                    self.display_message("Game Over !!!")

 

            if self.car_x_coordinate < 310 or self.car_x_coordinate > 460:

                self.crashed = True

                self.display_message("Game Over !!!")

 

            pygame.display.update()

            self.clock.tick(60)

 

    def display_message(self, msg):

        font = pygame.font.SysFont("comicsansms", 72, True)

        text = font.render(msg, True, (255, 255, 255))

        self.gameDisplay.blit(text, (400 - text.get_width() // 2, 240 - text.get_height() // 2))

        self.display_credit()

        pygame.display.update()

        self.clock.tick(60)

        sleep(1)

        car_racing.initialize()

        car_racing.racing_window()

 

    def back_ground_raod(self):

        self.gameDisplay.blit(self.bgImg, (self.bg_x1, self.bg_y1))

        self.gameDisplay.blit(self.bgImg, (self.bg_x2, self.bg_y2))

 

        self.bg_y1 += self.bg_speed

        self.bg_y2 += self.bg_speed

 

        if self.bg_y1 >= self.display_height:

            self.bg_y1 = -600

 

        if self.bg_y2 >= self.display_height:

            self.bg_y2 = -600

 

    def run_enemy_car(self, thingx, thingy):

        self.gameDisplay.blit(self.enemy_car, (thingx, thingy))

 

    def highscore(self, count):

        font = pygame.font.SysFont("arial", 20)

        text = font.render("Score : " + str(count), True, self.white)

        self.gameDisplay.blit(text, (0, 0))

 

    def display_credit(self):

        font = pygame.font.SysFont("lucidaconsole", 14)

        text = font.render("Thanks for playing!", True, self.white)

        self.gameDisplay.blit(text, (600, 520))

 

 

if __name__ == '__main__':

    car_racing = CarRacing()

    car_racing.racing_window()

 

 

OUTPUT

 

 

 

 

Comments

Popular posts from this blog

7. Implementing programs using Strings. (reverse, palindrome, character count, replacing characters)

1. Identification and solving of simple real life or scientific or technical problems, and developing flow charts for the same.

G3151-Problem Solving and Python Programming (2021 Regulations Anna University,Chennai)