As discussed in the previous blog here we are to create multiple games interesting to get a hands on our Python3 Gaming coding which will be very interesting believe me. When you see colorful or live output for the code you developed, games are fantastic for this, as you are specifically programming everything you see. From this you get clarity on concepts like loops functions and of course UI. Here you will not only implement your coding skills but also logic, physics and some part of AI.
We are using python 3 gaming and core python as back-end programming. So we are going to create two games.
Firstly, Race car game,
Secondly, Helicopter game.
Project overview:
Usage of basic python concepts:
1. Firstly, Loops,
2. Secondly, Functions,
3. Lastly, Conditional statements
Here we will not be using any official frameworks we are using core python. We will be using loops specifically I have used while loops use can also use other loops and for loops for multiple level. This will use conditional statements. Also, we have use if else and else if statements We will be using built in functions as well as user defined functions.
Python Libraries:
1. Firstly, Time (preinstalled)
2. Secondly, Random (preinstalled)
3. Lastly, Pygame (pip3 install pygame)
We have used multiple python libraries for multiple functionalities. Time library of python which is preinstalled is also used. This library is being used to make utilization of time related functions. Then we have used Random Library which is again preinstalled, this module implements pseudo-random number generators to generate random numbers. For integers it uses uniform selection from a range. And for sequences it uses uniform selection of a random element. Lastly we have used pygame library we have well discussed in our previous blog.
Stretch goals:
1. Firstly, Multiple levels
2. Secondly, Timed condition
3. Thirdly, Multiple lives
4. Lastly, Multiplayer support
We will have multiple levels in our game with time conditions, it will let multiple people play the game with more than one life.
Transcript/Cheat-sheet :
Car Race Game :
import time import pygame |
|
import random | |
pygame.init() | |
############# | |
crash_sound = pygame.mixer.Sound(“crash.wav“) | |
############# | |
display_width = 800 | |
display_height = 600 | |
black = (0,0,0) | |
white = (255,255,255) | |
red = (200,0,0) | |
green = (0,200,0) | |
bright_red = (255,0,0) | |
bright_green = (0,255,0) | |
block_color = (53,115,255) | |
car_width = 73 | |
gameDisplay = pygame.display.set_mode((display_width,display_height)) | |
pygame.display.set_caption(‘A bit Racey‘) | |
clock = pygame.time.Clock() | |
carImg = pygame.image.load(‘racecar.png‘) | |
gameIcon = pygame.image.load(‘carIcon.png‘) | |
pygame.display.set_icon(gameIcon) | |
pause = False | |
#crash = True | |
def things_dodged(count): | |
font = pygame.font.SysFont(“comicsansms“, 25) | |
text = font.render(“Dodged: “+str(count), True, black) | |
gameDisplay.blit(text,(0,0)) | |
def things(thingx, thingy, thingw, thingh, color): | |
pygame.draw.rect(gameDisplay, color, [thingx, thingy, thingw, thingh]) | |
def car(x,y): | |
gameDisplay.blit(carImg,(x,y)) | |
def text_objects(text, font): | |
textSurface = font.render(text, True, black) | |
return textSurface, textSurface.get_rect() | |
def crash(): | |
#################################### | |
pygame.mixer.Sound.play(crash_sound) | |
pygame.mixer.music.stop() | |
#################################### | |
largeText = pygame.font.SysFont(“comicsansms“,115) | |
TextSurf, TextRect = text_objects(“You Crashed“, largeText) | |
TextRect.center = ((display_width/2),(display_height/2)) | |
gameDisplay.blit(TextSurf, TextRect) | |
while True: | |
for event in pygame.event.get(): | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
quit() | |
button(“Play Again“,150,450,100,50,green,bright_green,game_loop) | |
button(“Quit“,550,450,100,50,red,bright_red,quitgame) | |
pygame.display.update() | |
clock.tick(15) | |
def button(msg,x,y,w,h,ic,ac,action=None): | |
mouse = pygame.mouse.get_pos() | |
click = pygame.mouse.get_pressed() | |
if x+w > mouse[0] > x and y+h > mouse[1] > y: | |
pygame.draw.rect(gameDisplay, ac,(x,y,w,h)) | |
if click[0] == 1 and action != None: | |
action() | |
else: | |
pygame.draw.rect(gameDisplay, ic,(x,y,w,h)) | |
smallText = pygame.font.SysFont(“comicsansms“,20) | |
textSurf, textRect = text_objects(msg, smallText) | |
textRect.center = ( (x+(w/2)), (y+(h/2)) ) | |
gameDisplay.blit(textSurf, textRect) | |
def quitgame(): | |
pygame.quit() | |
quit() | |
def unpause(): | |
global pause | |
pygame.mixer.music.unpause() | |
pause = False | |
def paused(): | |
############ | |
pygame.mixer.music.pause() | |
############# | |
largeText = pygame.font.SysFont(“comicsansms“,115) | |
TextSurf, TextRect = text_objects(“Paused“, largeText) | |
TextRect.center = ((display_width/2),(display_height/2)) | |
gameDisplay.blit(TextSurf, TextRect) | |
while pause: | |
for event in pygame.event.get(): | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
quit() | |
button(“Continue“,150,450,100,50,green,bright_green,unpause) | |
button(“Quit“,550,450,100,50,red,bright_red,quitgame) | |
pygame.display.update() | |
clock.tick(15) | |
def game_intro(): | |
intro = True | |
while intro: | |
for event in pygame.event.get(): | |
#print(event) | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
quit() | |
gameDisplay.fill(white) | |
largeText = pygame.font.SysFont(“comicsansms“,115) | |
TextSurf, TextRect = text_objects(“A bit Racey“, largeText) | |
TextRect.center = ((display_width/2),(display_height/2)) | |
gameDisplay.blit(TextSurf, TextRect) | |
button(“GO!“,150,450,100,50,green,bright_green,game_loop) | |
button(“Quit“,550,450,100,50,red,bright_red,quitgame) | |
pygame.display.update() | |
clock.tick(15) | |
def game_loop(): | |
global pause | |
############ | |
pygame.mixer.music.load(‘jazz.wav‘) | |
pygame.mixer.music.play(–1) | |
############ | |
x = (display_width * 0.45) | |
y = (display_height * 0.8) | |
x_change = 0 | |
thing_startx = random.randrange(0, display_width) | |
thing_starty = –600 | |
thing_speed = 4 | |
thing_width = 100 | |
thing_height = 100 | |
thingCount = 1 | |
dodged = 0 | |
gameExit = False | |
while not gameExit: | |
for event in pygame.event.get(): | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
quit() | |
if event.type == pygame.KEYDOWN: | |
if event.key == pygame.K_LEFT: | |
x_change = –5 | |
if event.key == pygame.K_RIGHT: | |
x_change = 5 | |
if event.key == pygame.K_p: | |
pause = True | |
paused() | |
if event.type == pygame.KEYUP: | |
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: | |
x_change = 0 | |
x += x_change | |
gameDisplay.fill(white) | |
things(thing_startx, thing_starty, thing_width, thing_height, block_color) | |
thing_starty += thing_speed | |
car(x,y) | |
things_dodged(dodged) | |
if x > display_width – car_width or x < 0: | |
crash() | |
if thing_starty > display_height: | |
thing_starty = 0 – thing_height | |
thing_startx = random.randrange(0,display_width) | |
dodged += 1 | |
thing_speed += 1 | |
thing_width += (dodged * 1.2) | |
if y < thing_starty+thing_height: | |
print(‘y crossover‘) | |
if x > thing_startx and x < thing_startx + thing_width or x+car_width > thing_startx and x + car_width < thing_startx+thing_width: | |
print(‘x crossover‘) | |
crash() | |
pygame.display.update() | |
clock.tick(60) | |
game_intro() | |
game_loop() | |
pygame.quit() | |
quit() |
Helicopter Game :
import time import pygame |
|
from random import randint,randrange | |
black = (0,0,0) | |
white = (255,255,255) | |
sunset = (253,72,47) | |
greenyellow = (184,255,0) | |
brightblue = (47,228,253) | |
orange = (255,113,0) | |
yellow = (255,236,0) | |
purple = (252,67,255) | |
colorChoices = [greenyellow,brightblue,orange,yellow,purple] | |
pygame.init() | |
surfaceWidth = 800 | |
surfaceHeight = 500 | |
imageHeight = 43 | |
imageWidth = 100 | |
surface = pygame.display.set_mode((surfaceWidth,surfaceHeight)) | |
pygame.display.set_caption(‘Helicopter‘) | |
clock = pygame.time.Clock() | |
img = pygame.image.load(‘Helicopter.png‘) | |
def score(count): | |
font = pygame.font.Font(‘freesansbold.ttf‘, 20) | |
text = font.render(“Score: “+str(count), True, white) | |
surface.blit(text, [0,0]) | |
def blocks(x_block, y_block, block_width, block_height, gap, colorChoice): | |
pygame.draw.rect(surface, colorChoice, [x_block,y_block,block_width,block_height]) | |
pygame.draw.rect(surface, colorChoice, [x_block,y_block+block_height+gap,block_width, surfaceHeight]) | |
def replay_or_quit(): | |
for event in pygame.event.get([pygame.KEYDOWN, pygame.KEYUP, pygame.QUIT]): | |
if event.type == pygame.QUIT: | |
pygame.quit() | |
quit() | |
elif event.type == pygame.KEYDOWN: | |
continue | |
return event.key | |
return None | |
def makeTextObjs(text, font): | |
textSurface = font.render(text, True, sunset) | |
return textSurface, textSurface.get_rect() | |
def msgSurface(text): | |
smallText = pygame.font.Font(‘freesansbold.ttf‘, 20) | |
largeText = pygame.font.Font(‘freesansbold.ttf‘, 150) | |
titleTextSurf, titleTextRect = makeTextObjs(text, largeText) | |
titleTextRect.center = surfaceWidth / 2, surfaceHeight / 2 | |
surface.blit(titleTextSurf, titleTextRect) | |
typTextSurf, typTextRect = makeTextObjs(‘Press any key to continue‘, smallText) | |
typTextRect.center = surfaceWidth / 2, ((surfaceHeight / 2) + 100) | |
surface.blit(typTextSurf, typTextRect) | |
pygame.display.update() | |
time.sleep(1) | |
while replay_or_quit() == None: | |
clock.tick() | |
main() | |
def gameOver(): | |
msgSurface(‘crashed!‘) | |
def helicopter(x, y, image): | |
surface.blit(img, (x,y)) | |
def main(): | |
x = 150 | |
y = 200 | |
y_move = 0 | |
x_block = surfaceWidth | |
y_block = 0 | |
block_width = 75 | |
block_height = randint(0,(surfaceHeight/2)) | |
gap = imageHeight * 3 | |
block_move = 4 | |
current_score = 0 | |
blockColor = colorChoices[randrange(0,len(colorChoices))] | |
game_over = False | |
while not game_over: | |
for event in pygame.event.get(): | |
if event.type == pygame.QUIT: | |
game_over = True | |
if event.type == pygame.KEYDOWN: | |
if event.key == pygame.K_UP: | |
y_move = –5 | |
if event.type == pygame.KEYUP: | |
if event.key == pygame.K_UP: | |
y_move = 5 | |
y += y_move | |
surface.fill(black) | |
helicopter(x ,y, img) | |
blocks(x_block, y_block, block_width, block_height, gap, blockColor) | |
score(current_score) | |
x_block -= block_move | |
if y > surfaceHeight–40 or y < 0: | |
gameOver() | |
if x_block < (–1*block_width): | |
x_block = surfaceWidth | |
block_height = randint(0, (surfaceHeight / 2)) | |
blockColor = colorChoices[randrange(0,len(colorChoices))] | |
current_score+=1 | |
if x + imageWidth > x_block: | |
if x < x_block + block_width: | |
if y < block_height: | |
if x – imageWidth < block_width + x_block: | |
gameOver() | |
if x + imageWidth > x_block: | |
if y + imageHeight > block_height+gap: | |
if x < block_width + x_block: | |
gameOver() | |
#if x_block < (x – block_width) < x_block + block_move: | |
# current_score += 1 | |
if 3 <= current_score < 5: | |
block_move = 5 | |
gap = imageHeight * 2.9 | |
if 5 <= current_score < 8: | |
block_move = 6 | |
gap = imageHeight *2.8 | |
if 8 <= current_score < 14: | |
block_move = 7 | |
gap = imageHeight *2.7 | |
pygame.display.update() | |
clock.tick(60) | |
main() | |
pygame.quit() | |
quit() |
So, that’s it for more detailed guide Github code .
Keep in mind though, typing to someone and then voice chatting to someone are two different experiences. Youth can be very social when typing but very shy when voice chatting.Click Here
I am really thsanks to you for sharing awesome game with us and keep updated Car Racing Game Download For Mobile
I impressed by the quality of information on this website. I am very enjoyed for this blog. Its an informative topic. Very useful info. I am sure I will visit this place again soon. Hope to see more posts soon! oceans of games
If you don’t want to read comments and just want a quick score to see if it’s worth playing a game, Stick RPG 2 is for you. It’s not a review site in itself, but instead adds results from multiple Sports Heads Basketball game review websites (similar to Rotten Tomatoes for movies).
The abysmal you dig into the content and communicate us the precise aggregation is appreciable. agen bandarq
It is an informative post.
Many game lovers will need to select between different kinds available over the internet. While some of them may prefer the card games, some people like to secure their games and other accounts and they used online strong password generator sites. Many websites have specific requirements regarding a password complexity. So, you can easily use online random password.
This is not only a hassle but also very unfair as it gives some players an advantage over others.Best Gaming PC Under 500 Dollars 2019
The simplest kind of multiplayer game to manipulate with a games cheat can be the "asynchronous peer-to-peer game."best wow leveling addon
Wow, cool post. I’d like to write like this too – taking time and real hard work to make a great article… but I put things off too much and never seem to get started. Thanks though. The cheapest Logitech G903
Thanks for sharing us. https://www.buildbeasts.com/parts/motherboard/for-gaming
As the name suggests, in the games belonging to this genre, the players are expected to build, expand and manage imaginary projects and communities with very little resources. Examples of this genre include, "SimCity" and "Harvest Moon".
best gaming computer under 500 2019:Read This Guide
According to Google, they are effective tools for full apps and their use will not affect the Google Play figures. It will be interesting to see if the usage rates will be affected during future announcements.lulu apk
Two games to take a gander at as a kind of perspective for good portrayal are OverWatch and Atlas Reactor. This blog
I needed to thank you for this incredible read!! I certainly getting a charge out of each and every piece of it I have you bookmarked to look at new stuff you post. 로투스바카라
Great post, are you looking for real estate in Sanford, FL? Learn where the deals are, get short sale lists and find homes for sale in Oviedo. slotomania free coins
At the point when a visually impaired man bears the standard pity the individuals who pursue… . Where numbness is euphoria 'tis imprudence to be astute… . 넷마블주소
At the point when a visually impaired man bears the standard pity the individuals who pursue… . Where numbness is euphoria 'tis imprudence to be astute… . 넷마블주소
I wish more authors of this type of content would take the time you did to research and write so well.I am very impressed with your vision and insight. Browns Game Live
Purchasing a trade-in vehicle is a major test, particularly on the off chance that you have no clue about the vehicle you are going to purchase, so it's profoundly prescribed that you take as much time as necessary to gather the required data and research through the web to arm yourself before going into the clash of purchasing utilized autos.
Very good written article. It will be supportive to anyone who utilizes it, including me. Keep doing what you are doing – can’r wait to read more posts. patriots streaming live
nice
That is the reason various individuals need the privilege and proper accident protection for their vehicle. elevation used travel trailer in Missouri
vauxhall agila problems https://carleg.com/Problems-of-2012-Vauxhall-Agila-SE-1-2i-16v-Engine.html
vauxhall agila problems https://carleg.com/Problems-of-2012-Vauxhall-Agila-SE-1-2i-16v-Engine.html
I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work. Booster Seats
I think this is definitely an amazing project here. So much good will be coming from this project. The ideas and the work behind this will pay off so much. 먹튀신고
I’m going to read this. I’ll be sure to come back. thanks for sharing. and also This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article… xosokienthiet
Any harm to the air conditioner during its utilization is made up for from the store cash. airconditioning
Thank you very much for this great post. Rent a car deals
When people visit the places that they have built, they are awarded this currency and every time they log into the game, they also get paid free robux hack generator
Waow this is very wonderful article, my sister love to peruse such kind of post, I am going to advise her and bookmarking this site page. Much appreciated 해외스포츠중계
Together with Visit Article content Page Syndication Provider, it is possible to move deeper together with faster rather than you might have truly dreamed with regards to your alternatives on-line.used cars for sale in nigeria
Automobiles parts are manufactured in different parts of the world. The automobile manufacturing companies choose quality parts from around the world to assemble them into great designs. used cars in dubai sale
wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated. Latest & Bugs Free Version
12 year old script kitty nobody
the delight that may provide light for his face as he sees this bad boy should not come to be a surprise. The MaxTronic Monster car tracker
Any business, whether small or big, faces many challenges and some of the biggest challenges are in the shape of disasters, especially the natural ones. It does not matter which part of the world your business operates in; natural disasters are possible in every part of the planet. Car Paint
RC vehicle specialists have an entire universe of movement all their own; on the off chance that you like autos you will like the action that encompasses rc vehicle racing. For certain individuals state there's not at all like it. Daytona 500 Live Stream
such a nice post i really apprciate your writting skills and thanks for providing me all information regarding car. Self-drive car rental in cochi
When you use a genuine service, you will be able to provide instructions, share materials and choose the formatting style. Car Window Tinting
Hey There. I found your blog using Google. This is a very well written article. I’ll be sure to bookmark it and come back to read more of your useful info. Thanks for the post. I’ll definitely return. published
Thanks for blogging and i enjoy the blog posting so no public comments.,,,,,,,,,,, mykonos drivers for hire
When your website or blog goes live for the first time, it is exciting. That is until you realize no one but you and your. Paper.io 2 Hack – Download Now 2019!
When your website or blog goes live for the first time, it is exciting. That is until you realize no one but you and your. http://monsterlegendzfree.com
The Players Championship 2020 will start from 12th March to 15th March. A big change has made in this year's The Players golf tournaments. The purse rises from 12 million to 12.5 million for the first time in history. As like before, TPC Sawgrass, Stadium Course will be the place for the Players tournament. No matter where you are and how you have watched before,
Now you can watch the players live stream very smoothly and easily. Stay with us to watch the Players Championship live stream 2020. Thanks.
When it comes to technology solutions for your business it is easy to get carried away with the latest-and-greatest gadgets and solutions. Everyone wants to have the latest shiny thing. In larger organizations, managing technology can become burdensome due to competing and duplicative technology requests. Left unfettered, the company technology platform can resemble a "spaghetti bowl" over time. Often is the case, new technology requests are submitted without any business case to support their investment. kids tricycle
The only way to watch Supercross 2020 Live for free is your cable TV. Tuning on NBC Sports will give free access to your TV.
Before that, you have to make sure your local cable TV provider gives NBC channel. watch Supercross 2020 Live
The Players Championship 2020
The Players Championship field
the players championship dates
The Players Championship Live Coverage
The Players Championship 2020 tickets
The Players Championship nbc
The Players Championship online
The Players Championship espn
What is the players championship purse
The Players Championship Events
Super Mario Bros was the main game ever to be discharged for the NES in 1985. It was the principal game to convey compelling smooth looking over levels with an allchess news
It is a great website.. The Design looks very good.. Keep working like that!. Sol Control Custom Window tinting
I wanted to thank you for this in your liking ensnare!! I particularly enjoying all tiny little bit of it I have you ever bookmarked to check out delivered stuff you pronounce. Sol control Custom Residential Window Tinting Service
We still have about per year to move before Sony launches its next-generation PlayStation 5 console, which will go against Microsoft's upcoming Xbox Series X. Little by little, we are… Gadget
I am jovial you take pride in what you write. It makes you stand way out from many other writers that can not push high-quality content like you. asikqq
Now, you must be thinking of where to find the latest cars. You don't have to go to the manufacturers. They are ready to bring them to your room. Yeah! Right on your computer. Car manufacturers have a display of their existing and new products on the Internet. And to make it easier, they have dealers across the globe bringing their products to those who want them. ZW PH
Verizon customers have exclusive access to NFL Draft 2020 stream streaming NFL Network’s draft broadcast via phone through the NFL Mobile app. Download the NFL Mobile app from the Apple Store, Microsoft Store or Google Play Store to use the service.
the Coca-Cola 600 in NASCAR and the Monaco Grand Prix in Formula 1.
Indy 500 2020 Live Stream
Here’s what you need to know to watch the marathon live:
Boston Marathon Live
A thoughtful insight and ideas I will use on my blog. You have obviously spent a lot of time on this. Well done! Read More Here
I like to recommend exclusively fine plus efficient information and facts, hence notice it:
subwoofer boxes
Wow! This could be one of the most useful blogs we have ever come across on thesubject. Actually excellent info! I’m also an expert in this topic so I can understand your effort. sexy gaming
I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts. street legal trophy truck
this is usually a outstanding internet site. I never undergone such good quality satisfied. My opportunity is fairly happy. I am to consider your internet site regurly as well as we imagine you modernize additional. We shall recommend my personal buddies for this place. The knowledge will likely be ideal for option living. I highly recommend these destination to everyone. I like viewing this a great deal. Thank you very much during just like high quality posts. Gigapurbalingga
Through this post, I know that your good knowledge in playing with all the pieces was very helpful. I notify that this is the first place where I find issues I've been searching for. You have a clever yet attractive way of writing. uvc light
Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It’s always nice when you can not only be informed, but also entertained! https://serverbrowse.com/
racing games, which bring fierce, competitive races, when I play Hill Climb Racing MOD APK a similar theme game
Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more. Vacation Rental Missouri
Doom Eternal – Updated Guide and Walkthrough – Final Complete Cheats, Hack, Tips, Tricks eBook: Center, Doom: Amazon.in: Kindle Store. Doometernal
Always so interesting to visit your site.What a great info, thank you for sharing. this will help me so much in my learning Women's clothes
Apart from advice abbout bisexual dating, if you are a new threesome finder and the first time to come to the threesome dating site, Bicupid has opened up the independent space for threesome finder, where you can find suitable matches in here bicupid
This web site is amazing. I continually come across some thing new & diverse correct right here. Appreciate that information. https://maps.google.com/url?q=http://geteducationskills.com/
useful information on topics that plenty are interested on for this wonderful post.Admiring the time and effort you put into your b!.. purchase likes instagram
In process of hacking into the iPhone, several tidbits were gleaned – such as the fact that the software on the iPhone runs as "root" – in the Unix world this basically gives you full and complete access to the machine. You could bring down entire servers and even chains of servers if you have ROOT access to a Unix machine. Visit here today
If the No Loss Forex Robot is a game changer, then I HIGHLY recommend that anyone who wants to make money trading forex go and get it NOW before the rules of the game gets changed so that it doesn't work anymore. If it truly guarantees that you will NEVER lose [http://www.forexrobotsnews.com/latest-articles/the-no-loss-forex-robot-a-game-changer/] a trade, then you have to realize that it cannot be allowed to continue and get into the hands of thousands if not millions of traders worldwide. It would certainly cause an upheaval in the Forex markets. war robots free gold and silver
In spite of the growing concern about the students' deteriorating attention spans, institutions are incorporating them in the process of classroom learning. fpsbolt
[…] certification courses and different types of games that you can build using Python. For instance, helicopter and car game, Pong game and flappy bird. So, here is our new blog on Python Projects for beginners where you […]
[…] to get hired by any big gaming company. We have some programming blogs on games you can build like car games helicopter games pong and flappy bird and also the on the libraries that helps to make them if you want to go in […]