-
Notifications
You must be signed in to change notification settings - Fork 3
/
game.py
150 lines (126 loc) · 4.81 KB
/
game.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import logging
logging.basicConfig(level=logging.DEBUG)
import pygame
import time
import random
logging.info("initiating pygame")
pygame.init()
logging.info("setting the width and height of display")
display_width = 1000
display_height = 800
logging.info("setting the colour of display")
black = (0, 0, 0)
white = (255, 255,255)
block_color = ( 53, 115, 255)
car_width = 73
car_height = 73
logging.info("initializing the display")
gameDisplay = pygame.display.set_mode((display_width, display_height)) #Displays(width,length)
logging.info("setting the caption of the display")
pygame.display.set_caption('A bit racey')
logging.info("setting the clock")
clock = pygame.time.Clock()
logging.info("uploading the image of car")
carImg = pygame.image.load("racecar.png") ##uploading image
logging.info("defining a function of car")
def things(thingx, thingy,thingw, thingh, color):
pygame.draw.rect(gameDisplay, color, [thingx, thingy,thingw, thingh])
def things_dodged(count):
font = pygame.font.SysFont(None, 25)
text = font.render("dodged" + str(count), True, black)
gameDisplay.blit(text,(0,0))
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 message_display(text):
largeText = pygame.font.Font("freesansbold.ttf", 115)#font type and size
TextSurf, TextRect = text_objects(text, largeText)
TextRect.center = ((display_width/2), (display_height/2))
gameDisplay.blit(TextSurf, TextRect)
pygame.display.update()
time.sleep(2)
game_loop()
def crash():
message_display("You Crashed")
logging.info("starting game loop")
def game_loop():
logging.info("setting the position of the car")
x = (display_width * 0.45)
y = (display_height * 0.8)
x_change = 0
y_change = 0
thing_startx = random.randrange(0, display_width)
thing_starty = -600 # so that it apears a little slower
thing_speed = 10
thing_width = 100
thing_height = 100 #pixels
dodged = 0
gameExit = False
logging.info("while not gameExit")
while not gameExit:
###########event handling loop###########
#logging.info("starting event handling loop")
for event in pygame.event.get(): #it gets any event that happens...movenment of mouse or clicking etc
if event.type == pygame.QUIT: # when we will click X it will quit the window
logging.info("X is pressed")
pygame.quit()
quit()
################This event will handle situation when ever any key will be pressed UP##################################
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:#pressing left arrow will decrease x-axis coordinate
logging.info("left arrow is pressed down")
x_change = -7
if event.key == pygame.K_RIGHT:#pressing right arrow will increase x-axis coordinate
logging.info("Right arrow is pressed down")
x_change = 7
if event.key == pygame.K_UP:#pressing UP arrow will decrease Y-axis coordinate
logging.info("Up arrow is pressed down")
y_change = -7
if event.key == pygame.K_DOWN:#pressing Down arrow will increase x-axis coordinate
logging.info("Down arrow is pressed down")
y_change = 7
################This event will handle situation when ever any key will be pressed UP##################################
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
logging.info("left or right arrow is pressed up")
x_change = 0
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
logging.info("up or down arrow is pressed up")
y_change = 0
#logging.info("updating the value of x")
x += x_change
#logging.info("updating the value of y")
y += y_change
#logging.info("making the back display white")
gameDisplay.fill(white)
#things(thingx, thingy,thingw thingh, color)
things(thing_startx, thing_starty, thing_width, thing_height, block_color)
thing_starty += thing_speed
#logging.info("calling the function of car")
car(x,y)
things_dodged(dodged)
if x > display_width - car_width or x < 0:
logging.info("quiting the game beacause the car has hit the walls")
crash()
if y > display_height - car_height or y < 0:
logging.info("quiting the game beacause the car has hit the walls")
crash()
if thing_starty > display_height:
thing_starty = 0 - thing_height
thing_startx = random.randrange(0, display_width)
dodged += 1
thing_speed += 0.5
thing_width += (dodged * 1.2)
if y < thing_starty + thing_height:
if x>thing_startx and x<thing_startx+thing_width or x+car_width>thing_startx and x+car_width<thing_startx+thing_width:
crash()
pygame.display.update()
clock.tick(60) ## it will just make thing move faster
logging.info("calling the game loop")
game_loop()
logging.info("calling the quit function")
pygame.quit()
logging.info("I am the last line of the code")
quit()