Games by their very nature should be enjoyable. So for what reason should the way toward making them be dull and entangled? Rather than enduring long stretches of talks and game improvement hypothesis, this tutorial permits you to make a game straight away, learning as you go.
Learn Python game Development by making your own game
Module we need for this Flappy Bird Game
1 . Command for installing pygame-
3 . Module random is preinstalled in your machine
For installing python programming language simple to have to click to this link given below -
Download Python from this link
For Develop a clone of Flappy Bird we utilizing Python game programming ( pygame)
Code of this project -
Learn Python game Development by making your own game
Module we need for this Flappy Bird Game
- Pygame
- sys
- random
1 . Command for installing pygame-
pip install pygame2 . Module sys is preinstalled in your machine
3 . Module random is preinstalled in your machine
For installing python programming language simple to have to click to this link given below -
Download Python from this link
For Develop a clone of Flappy Bird we utilizing Python game programming ( pygame)
Code of this project -
#!/usr/bin/python3 import pygame from pygame.locals import * import sys import random FPS = 32 SCREENWIDTH = 289 SCREENHEIGHT = 511 SCREEN = pygame.display.set_mode((SCREENWIDTH, SCREENHEIGHT)) GROUNDY = SCREENHEIGHT * 0.8 GAME_SPRITES = {} GAME_SOUND = {} PLAYER = 'bird.png' BACKGROUND = 'back.png' PIPE = 'pipe.png' def welcomeScreen(): playerx = int(SCREENWIDTH/5) playery = int((SCREENHEIGHT - GAME_SPRITES['player'].get_height())/2) messagex = int((SCREENWIDTH - GAME_SPRITES['message'].get_width())/2) messagey = int(SCREENHEIGHT*0.13) basex = 0 while True: for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): pygame.quit() sys.exit() # space key up elif event.type == KEYDOWN and (event.key==K_SPACE or event.key== K_UP): return else : SCREEN.blit(GAME_SPRITES['background'],(0,0)) SCREEN.blit(GAME_SPRITES['player'],(playerx,playery)) # SCREEN.blit(GAME_SPRITES['message'],(messagex,messagey)) SCREEN.blit(GAME_SPRITES['base'],(basex,GROUNDY)) pygame.display.update() FPSCLOCK.tick(FPS) def mainGame(): score = 0 playerx= int(SCREENWIDTH/5) playery = int(SCREENWIDTH/2) basex = 0 #pipes newPipe1 = getRandomPipe() newPipe2 = getRandomPipe() upperPipes = [ {'x': SCREENWIDTH+200, 'y':newPipe1[0]['y']}, {'x': SCREENWIDTH+200+(SCREENWIDTH/2),'y':newPipe2[0]['y']}, ] lowerPipes = [ {'x': SCREENWIDTH+200, 'y':newPipe1[1]['y']}, {'x': SCREENWIDTH+200+(SCREENWIDTH/2),'y':newPipe2[1]['y']}, ] pipeVelX = -4 playerVelY = -9 playerMaxVelY = 10 playerMinVelY = -8 playerAccY = 1 playerFlapAccv = -8 playerFlapped = False while True: for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): pygame.quit() sys.exit() if event.type == KEYDOWN and (event.key == K_SPACE or event.key == K_UP): if playery > 0: playerVelY = playerFlapAccv playerFlapped = True GAME_SOUND['wing'].play() crashTest = isCollide(playerx, playery, upperPipes ,lowerPipes) if crashTest: return #scroce playerMidPos = playerx+ GAME_SPRITES['player'].get_width()/2 for pipe in upperPipes: pipeMidPos = pipe['x']+GAME_SPRITES['pipe'][0].get_width()/2 if pipeMidPos<= playerMidPos < pipeMidPos+4: score +=1 print(f"your score is {score}") GAME_SOUND['point'].play() if playerVelY <playerMaxVelY and not playerFlapped: playerVelY += playerAccY if playerFlapped: playerFlapped = False playerHeight = GAME_SPRITES['player'].get_height() playery = playery + min(playerVelY, GROUNDY - playery - playerHeight) #moves pipe left for upperPipe , lowerPipe in zip(upperPipes , lowerPipes): upperPipe['x'] += pipeVelX lowerPipe['x'] += pipeVelX if 0<upperPipes[0]['x']<5: newpipe = getRandomPipe() upperPipes.append(newpipe[0]) lowerPipes.append(newpipe[1]) if upperPipes[0]['x'] < -GAME_SPRITES['pipe'][0].get_width(): upperPipes.pop(0) lowerPipes.pop(0) SCREEN.blit(GAME_SPRITES['background'],(0 , 0)) for upperPipe , lowerPipe in zip(upperPipes , lowerPipes): SCREEN.blit(GAME_SPRITES['pipe'][0],(upperPipe['x'] , upperPipe['y'])) SCREEN.blit(GAME_SPRITES['pipe'][1],(lowerPipe['x'] , lowerPipe['y'])) SCREEN.blit(GAME_SPRITES['base'],(basex , GROUNDY)) SCREEN.blit(GAME_SPRITES['player'],(playerx , playery)) myDigits = [int(x) for x in list(str(score))] width = 0 for digit in myDigits: width += GAME_SPRITES['numbers'][digit].get_width() Xoffset = (SCREENWIDTH - width)/2 for digit in myDigits: SCREEN.blit(GAME_SPRITES['numbers'][digit],(Xoffset,SCREENHEIGHT*0.12)) Xoffset += GAME_SPRITES['numbers'][digit].get_width() pygame.display.update() FPSCLOCK.tick(FPS) #colliding def isCollide(playerx,playery,upperPipes,lowerPipes): if playery> GROUNDY - 25 or playery<0: GAME_SOUND['hit'].play() return True for pipe in upperPipes: pipeHeight = GAME_SPRITES['pipe'][0].get_height() if(playery < pipeHeight +pipe['y'] and abs(playerx - pipe['x']) <GAME_SPRITES['pipe'][0].get_width()): GAME_SOUND['hit'].play() return True for pipe in lowerPipes: if (playery + GAME_SPRITES['player'].get_height() > pipe['y']) and abs(playerx - pipe['x']) < GAME_SPRITES['pipe'][0].get_width(): GAME_SOUND['hit'].play() return True return False def getRandomPipe(): """ pipes """ pipeHeight = GAME_SPRITES['pipe'][0].get_height() offset = SCREENHEIGHT/3 y2 = offset + random.randrange(0, int (SCREENHEIGHT - GAME_SPRITES['base'].get_height() - 1.2*offset)) pipeX = SCREENWIDTH+10 y1 = pipeHeight - y2 + offset pipe = [ {'x' : pipeX , 'y' : -y1}, {'x' : pipeX , 'y': y2} ] return pipe if __name__ == '__main__': pygame.init() FPSCLOCK = pygame.time.Clock() pygame.display.set_caption("Flappy Bird Game By Abhishek ") GAME_SPRITES['numbers'] = ( pygame.image.load('0n.png').convert_alpha(), pygame.image.load('1.png').convert_alpha(), pygame.image.load('2.png').convert_alpha(), pygame.image.load('3.png').convert_alpha(), pygame.image.load('4.png').convert_alpha(), pygame.image.load('5.png').convert_alpha(), pygame.image.load('6.png').convert_alpha(), pygame.image.load('7.png').convert_alpha(), pygame.image.load('8.png').convert_alpha(), pygame.image.load('9.png').convert_alpha(), ) GAME_SPRITES['message'] = pygame.image.load('welcome2.jpeg').convert_alpha() GAME_SPRITES['base'] = pygame.image.load('jh.png').convert_alpha() GAME_SPRITES['pipe'] =( pygame.transform.rotate(pygame.image.load(PIPE).convert_alpha(),180), # pygame.transform.scale(pygame.image.load(PIPE),(40,140)).convert_alpha(), pygame.image.load(PIPE).convert_alpha() , ) GAME_SOUND['die'] = pygame.mixer.Sound('audio/die.wav') GAME_SOUND['hit'] = pygame.mixer.Sound('audio/hit.wav') GAME_SOUND['point'] = pygame.mixer.Sound('audio/point.wav') GAME_SOUND['swoosh'] = pygame.mixer.Sound('audio/swoosh.wav') GAME_SOUND['wing'] = pygame.mixer.Sound('audio/wing.wav') GAME_SPRITES['background'] = pygame.image.load(BACKGROUND).convert() GAME_SPRITES['player'] = pygame.image.load(PLAYER).convert_alpha() while True: welcomeScreen() mainGame()
Create this game i.e. Flappy Bird and submit it as your the school project otherwise you can use it on your computer too. And show to your friends. Friends, if you need to get the present day updates of our website, then please join our Code Surfer, this can maintain you from getting the state-of-the-art updates about our upcoming.
Also read : How to Create WordPress Website with Bluehost | Step by Step Tutorial for Starters in 2020
Please share this article to friends to help them in their project and support me and subscribe our blog for more amazing projects
ReplyDelete