-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpingpong.py
More file actions
133 lines (105 loc) · 4.21 KB
/
pingpong.py
File metadata and controls
133 lines (105 loc) · 4.21 KB
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
import pygame
# Pygame'i başlat
pygame.init()
# Ekran boyutları
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Ping Pong")
# Renkler
white = (255, 255, 255)
black = (0, 0, 0)
# Paddles (raket) parametreleri
paddle_width = 20
paddle_height = 100
paddle_speed = 10
# Top parametreleri
ball_width = 15
ball_speed_x = 5
ball_speed_y = 5
# Sol paddle başlangıç konumu
left_paddle_y = screen_height // 2 - paddle_height // 2
# Sağ paddle başlangıç konumu
right_paddle_y = screen_height // 2 - paddle_height // 2
# Topun başlangıç konumu
ball_x = screen_width // 2 - ball_width // 2
ball_y = screen_height // 2 - ball_width // 2
# Skorlar
left_score = 0
right_score = 0
# FPS ayarı
clock = pygame.time.Clock()
# Yazı fontu
font = pygame.font.SysFont("Arial", 30)
# Oyun döngüsü
running = True
while running:
# Oyun olaylarını kontrol et
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Klavye girdi kontrolleri
keys = pygame.key.get_pressed()
if keys[pygame.K_w] and left_paddle_y > 0:
left_paddle_y -= paddle_speed
if keys[pygame.K_s] and left_paddle_y < screen_height - paddle_height:
left_paddle_y += paddle_speed
if keys[pygame.K_UP] and right_paddle_y > 0:
right_paddle_y -= paddle_speed
if keys[pygame.K_DOWN] and right_paddle_y < screen_height - paddle_height:
right_paddle_y += paddle_speed
# Top hareketi
ball_x += ball_speed_x
ball_y += ball_speed_y
# Topun ekran kenarlarına çarpmasını kontrol et
if ball_y <= 0 or ball_y + ball_width >= screen_height:
ball_speed_y = -ball_speed_y # Yatayda ters yön
# Sol raket ile çarpma kontrolü
if ball_x <= paddle_width and left_paddle_y <= ball_y <= left_paddle_y + paddle_height:
ball_speed_x = -ball_speed_x # Yatayda ters yön
# Sağ raket ile çarpma kontrolü
if ball_x + ball_width >= screen_width - paddle_width and right_paddle_y <= ball_y <= right_paddle_y + paddle_height:
ball_speed_x = -ball_speed_x # Yatayda ters yön
# Ekranın dışına çıkma
if ball_x <= 0:
right_score += 1 # Sağ oyuncu puan kazanır
ball_x = screen_width // 2 - ball_width // 2 # Top yeniden başa döner
ball_y = screen_height // 2 - ball_width // 2
ball_speed_x = -ball_speed_x # Yön değiştir
if ball_x + ball_width >= screen_width:
left_score += 1 # Sol oyuncu puan kazanır
ball_x = screen_width // 2 - ball_width // 2 # Top yeniden başa döner
ball_y = screen_height // 2 - ball_width // 2
ball_speed_x = -ball_speed_x # Yön değiştir
# Ekranı beyazla doldur
screen.fill(black)
# Topu çiz
pygame.draw.ellipse(screen, white, (ball_x, ball_y, ball_width, ball_width))
# Sol raketi çiz
pygame.draw.rect(screen, white, (0, left_paddle_y, paddle_width, paddle_height))
# Sağ raketi çiz
pygame.draw.rect(screen, white, (screen_width - paddle_width, right_paddle_y, paddle_width, paddle_height))
# Skorları yazdır
left_score_text = font.render(str(left_score), True, white)
screen.blit(left_score_text, (screen_width // 4 - left_score_text.get_width() // 2, 20))
right_score_text = font.render(str(right_score), True, white)
screen.blit(right_score_text, (3 * screen_width // 4 - right_score_text.get_width() // 2, 20))
# Skor 3-0 ise maç bitir
if left_score == 3:
winner_text = font.render("Sol Oyuncu Kazandı!", True, white)
screen.blit(winner_text, (screen_width // 2 - winner_text.get_width() // 2, screen_height // 2))
pygame.display.flip()
pygame.time.wait(2000) # 2 saniye bekle
running = False # Oyunu bitir
elif right_score == 3:
winner_text = font.render("Sağ Oyuncu Kazandı!", True, white)
screen.blit(winner_text, (screen_width // 2 - winner_text.get_width() // 2, screen_height // 2))
pygame.display.flip()
pygame.time.wait(2000) # 2 saniye bekle
running = False # Oyunu bitir
# Ekranı güncelle
pygame.display.flip()
# FPS ayarını yap
clock.tick(70)
# Pygame'i sonlandır
pygame.quit()