-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
158 lines (124 loc) · 5.45 KB
/
main.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
151
152
153
154
155
156
157
158
"""
_____ _______ _____ _____
/\ \ /::\ \ /\ \ /\ \
/::\ \ /::::\ \ /::\____\ /::\ \
/::::\ \ /::::::\ \ /::::| | /::::\ \
/::::::\ \ /::::::::\ \ /:::::| | /::::::\ \
/:::/\:::\ \ /:::/~~\:::\ \ /::::::| | /:::/\:::\ \
/:::/__\:::\ \ /:::/ \:::\ \ /:::/|::| | /:::/ \:::\ \
/::::\ \:::\ \ /:::/ / \:::\ \ /:::/ |::| | /:::/ \:::\ \
/::::::\ \:::\ \ /:::/____/ \:::\____\ /:::/ |::| | _____ /:::/ / \:::\ \
/:::/\:::\ \:::\____\ |:::| | |:::| | /:::/ |::| |/\ \ /:::/ / \:::\ ___\
/:::/ \:::\ \:::| ||:::|____| |:::| |/:: / |::| /::\____\/:::/____/ ___\:::| |
\::/ \:::\ /:::|____| \:::\ \ /:::/ / \::/ /|::| /:::/ /\:::\ \ /\ /:::|____|
\/_____/\:::\/:::/ / \:::\ \ /:::/ / \/____/ |::| /:::/ / \:::\ /::\ \::/ /
\::::::/ / \:::\ /:::/ / |::|/:::/ / \:::\ \:::\ \/____/
\::::/ / \:::\__/:::/ / |::::::/ / \:::\ \:::\____\
\::/____/ \::::::::/ / |:::::/ / \:::\ /:::/ /
~~ \::::::/ / |::::/ / \:::\/:::/ /
\::::/ / /:::/ / \::::::/ /
\::/____/ /:::/ / \::::/ /
~~ \::/ / \::/____/
\/____/
"""
# Pong by @Tchoow
# Imports
import pygame
import time
import sys
pygame.init()
# create windows and set size
window = pygame.display.set_mode((800, 600))
background = [0, 0, 0]
#window.fill(white)
pygame.display.set_caption("🏓 Pong Game")
print(sys.argv[0])
# loop
running = True
gameState = False
lastWinner = 0
class Joueur:
def __init__(self, x, y, width, height, color):
self.x = x
self.y = y
self.width = width
self.height = height
self.vel = 1
self.score = 0
self.color = color
def draw(self, window):
pygame.draw.rect(window, self.color, (self.x, self.y, self.width, self.height))
class Ball:
def __init__(self, x, y, radius, color):
self.x = x
self.y = y
self.radius = radius
self.color = color
self.vel = 1
self.x_dir = 1
self.y_dir = 1
def draw(self, window):
pygame.draw.circle(window, self.color, (self.x, self.y), self.radius)
joueur1 = Joueur(10, 300, 10, 100, (255,255,255))
joueur2 = Joueur(780, 300, 10, 100, (255,255,255))
ball = Ball (400, 300, 10, (255, 255, 255))
while running:
keys = pygame.key.get_pressed() #checking pressed keys
if keys[pygame.K_z] and joueur1.y > 0:
joueur1.y -= joueur1.vel
if keys[pygame.K_s] and joueur1.y < 500:
joueur1.y += joueur1.vel
if keys[pygame.K_UP] and joueur2.y > 0:
joueur2.y -= joueur2.vel
if keys[pygame.K_DOWN] and joueur2.y < 500:
joueur2.y += joueur2.vel
if keys[pygame.K_g] and gameState == False:
gameState = True
if gameState == True:
if ball.y <= 0 or ball.y >= 600:
ball.y_dir *= -1
# point joueur 2
if ball.x <= 0:
ball.x = 400
ball.y = 300
joueur2.score += 1
gameState = False
lastWinner = 2
# point joueur 1
if ball.x >= 800:
ball.x = 400
ball.y = 300
joueur1.score += 1
gameState = False
lastWinner = 1
if (lastWinner == 1):
ball.x += 0.2
ball.y -= 0.25
else:
ball.x -= 0.2
ball.y -= 0.25
if ball.x <= joueur1.x + joueur1.width and ball.y >= joueur1.y and ball.y <= joueur1.y + joueur1.height:
ball.x_dir *= -1
if ball.x >= joueur2.x and ball.y >= joueur2.y and ball.y <= joueur2.y + joueur2.height:
ball.x_dir *= -1
ball.x += ball.x_dir * ball.vel
ball.y += ball.y_dir * ball.vel
#ball.x += ball.x_dir * ball.vel
# draw
window.fill(background)
joueur1.draw(window)
joueur2.draw(window)
ball.draw(window)
# draw middle line
pygame.draw.line(window, (255, 255, 255), (400, 0), (400, 600), 1)
# draw score
font = pygame.font.SysFont("comicsans", 40)
text = font.render(str(joueur1.score) + " - " + str(joueur2.score), 1, (255, 255, 255))
window.blit(text, (355, 10))
pygame.display.flip()
time.sleep(0.001)
#quit
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()