Browse Source

Das Fertiges Programm ( Finale Version )

kai zhang 6 years ago
parent
commit
08a4b41d6f
1 changed files with 1 additions and 129 deletions
  1. 1 129
      PingPong.py

+ 1 - 129
PingPong.py

@@ -103,139 +103,11 @@ class Paddle:
103 103
 # name des Spiels
104 104
 # Ballsfarbe,paddlesfarbe und Hintergrundsfarbe
105 105
 # ball groesse
106
-tk = Tk()
107
-tk.title("Ping-Pong Spiel")
108
-canvas = Canvas(tk, width=500, he#Einfaches Ping-Pong Spiel basier auf GUI(Tkinter)
109
-
110
-#Authors : Milad Shirvani Filabadi, Kai Zhang,Yuan Wei
111
-
112
-#15.11.2017
113
-
114
-#Hier sind erstmal gesamte schritte für das Programm.
115
-
116
-#Stufe 1 - Eigenschaften und Funktionen der Ball definieren
117
-#Class der Ball und Funktionen wurde in dieser Stufe difiniert.
118
-
119
-#Stufe 2 - Eigenschaften und Funktionen der Paddle definieren
120
-
121
-#Stufe 3 - Fenster und canvas erstellen für zeichnen
122
-
123
-#Stufe 4 - Animation Schleife
124
-
125
-#Stufe 5 - Game Over
126
-
127
-
128
-#hier sind die Modoule, die wir wind for das Programm brachen und muss während der Programm abgerufen werden.
129
-
130
-
131
-from tkinter import *
132
-import random
133
-import time
134
-
135
-# Eigenschaften und Funktionen der Ball definieren
136 106
 
137
-#Class von Ball wurde hier definiert und dann in der ball Class sind Objecte
138
-#und Eigenschaften und auch Funktionen der Ball definierte.
139
-#init-mthode ist hier benutzt.
140
-#init-methode installiert die erstellte Objecte.
141
-
142
-
143
-class Ball:
144
-    def __init__(self, canvas, farbe, groesse, paddle):
145
-        self.canvas = canvas
146
-        self.paddle = paddle
147
-        self.id = canvas.create_oval(10, 10, groesse, groesse, fill=farbe)
148
-        self.canvas.move(self.id, 245, 100)
149
-        self.xspeed = random.randrange(-3,3)#  x-ache Geschwindigkeit random
150
-        self.yspeed = -1  #y-ache Geschwindigkeit
151
-        self.hit_bottom = False
152
-        self.score = 0
153
-
154
-#hier wurde Die Bewegung des Balls definiert.In welche richtung das Ball bewegen sollen muss.
155
-
156
-    def draw(self):
157
-        self.canvas.move(self.id, self.xspeed, self.yspeed)
158
-        pos = self.canvas.coords(self.id) #ball koordination ,data speichern
159
-        if pos[1] <= 0:# wenn ball oberreseite trifft, wird nach unter
160
-            self.yspeed = 3 # Geschwindigkeit von oben nach unten
161
-        if pos[3] >= 400:# wenn ball unterseite trifft , dann wird spiel beenden.
162
-            self.hit_bottom = True
163
-        if pos[0] <= 0: #:#wenn ball gegen linksseite ,pos[0] nach rechts
164
-            self.xspeed = 3
165
-        if pos[2] >= 500:#wennn ball gegen rechtsseite, nach links
166
-            self.xspeed = -3
167
-        if self.hit_paddle(pos) == True:
168
-            self.yspeed = -3
169
-            self.xspeed = random.randrange(-3,3)
170
-            self.score = self.score + 1
171
-
172
-#Definition von dem Ball wenn trifft Paddle.
173
-#hier wird so defeniert wenn die koordination von Ball trifft koordination
174
-#von Paddle ls
175
-
176
-    def hit_paddle(self, pos):
177
-        paddle_pos = self.canvas.coords(self.paddle.id)
178
-        if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
179
-            if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
180
-                return True
181
-        return False
182
-
183
-# Eigenschaften und Funktionen der Paddle definieren
184
-##Class von paddle wurde hier definiert und dann in der paddle Class sind Objecte
185
-class Paddle:
186
-    def __init__(self, canvas, farbe):
187
-        self.canvas = canvas
188
-        self.id = canvas.create_rectangle(0,0, 100, 10, fill=farbe)
189
-        self.canvas.move(self.id, 200, 300)
190
-        self.xspeed = 0
191
-        self.canvas.bind_all('<KeyPress-Left>', self.move_left)
192
-        self.canvas.bind_all('<KeyPress-Right>', self.move_right)
193
-#
194
-    def draw(self):
195
-        self.canvas.move(self.id, self.xspeed, 0)
196
-        pos = self.canvas.coords(self.id)
197
-#wenn Paddle trift rechte oder linke seite der Wand  wurde dann hier Geschwindigkeit
198
-#null defeniert
199
-        if pos[0] <= 0:
200
-            self.xspeed = 0
201
-        if pos[2] >= 500:
202
-            self.xspeed = 0
203
-#Padlle Bewegung und geschwindigkeit der Paddle
204
-    def move_left(self, evt):
205
-        self.xspeed = -2
206
-    def move_right(self, evt):
207
-        self.xspeed = 2
208
-
209
-# Fenster und canvas erstellen für zeichnen
210
-# name des Spiels
211
-# Ballsfarbe,paddlesfarbe und Hintergrundsfarbe
212
-# ball groesse
213 107
 tk = Tk()
214 108
 tk.title("Ping-Pong Spiel")
215 109
 canvas = Canvas(tk, width=500, height=400, bd=0, bg='green')
216
-canvas.pack()pingpong
217
-label = canvas.create_text(5, 5, anchor=NW, text="Punkt: 0")
218
-tk.update() # update date
219
-paddle = Paddle(canvas, 'blue')
220
-ball = Ball(canvas, 'red', 25, paddle)
221
-
222
-# Animation Schleife
223
-# hier wird programm durchgeführt
224
-while ball.hit_bottom == False:
225
-    ball.draw()
226
-    paddle.draw()
227
-    canvas.itemconfig(label, text="Punkt: "+str(ball.score))
228
-    tk.update_idletasks()
229
-    tk.update()
230
-    time.sleep(0.01)
231
-
232
-# Game Over Wenn das Ball der Paddle nicht trifft wird Spiel beenden.
233
-#ein Text wird gezeigt nach dem Ende des Spiels.Größe und Font der Text sind hier definiert.
234
-go_label = canvas.create_text(250,200,text="GAME OVER",font=("Helvetica",30))
235
-#(Position x, position y, Textinhalt ,Type, Groesse)
236
-tk.update()
237
-ight=400, bd=0, bg='green')
238
-canvas.pack()pingpong
110
+canvas.pack()
239 111
 label = canvas.create_text(5, 5, anchor=NW, text="Punkt: 0")
240 112
 tk.update() # update date
241 113
 paddle = Paddle(canvas, 'blue')