Erstellen eines Ping Pong Spiels mittels Python unter Verwendung einer grafischen Benutzeroberfläche

pingpong.py 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # Programmierung 2 - Ping Pong Spiel
  2. # Willi Schlegel, Francine Theil, Kristin Weber
  3. # letzte Aenderung: 19.07.2017
  4. #-----------------------------------------------------------------
  5. # Import der einzelnen Module
  6. import random as r
  7. import time
  8. from Tkinter import *
  9. # ----------------------------------------------------------------
  10. # Spieloberflaeche
  11. tk = Tk()
  12. tk.title("Superfantastisches Ping-Pong-Spiel")
  13. canvas = Canvas(tk, width=500, height=400, bd=3, bg='pink')
  14. canvas.pack()
  15. label = canvas.create_text(10, 10, anchor=NW, text="Punktestand: 0")
  16. tk.update()
  17. paddle = Paddle(canvas, 'black')
  18. ball = Ball(canvas, 'white', 25, paddle)
  19. #----------------------------------------------------------------
  20. # Eigenschaften des Paddles definieren
  21. class Ball():
  22. def __init__(self, canvas, color, size, paddle):
  23. self.canvas = canvas
  24. self.paddle = paddle
  25. self.id = canvas.create_oval(15, 15, size, size, fill=color)
  26. self.canvas.move(self.id, 245, 100)
  27. self.xspeed = random.randrange(-3,3)
  28. self.yspeed = -1
  29. self.hit_bottom = False
  30. self.score = 0
  31. def draw(self):
  32. self.canvas.move(self.id, self.xspeed, self.yspeed)
  33. pos = self.canvas.coords(self.id)
  34. if pos[0] <= 0:
  35. self.xspeed = 3
  36. if pos[1] <= 0:
  37. self.yspeed = 3
  38. if pos[2] >= 500:
  39. self.xspeed = -3
  40. if pos[3] >= 400:
  41. self.hit_bottom = True
  42. if self.hit_paddle(pos) == True:
  43. self.yspeed = -3
  44. self.xspeed = random.randrange(-3,3)
  45. self.score += 1
  46. def hit_paddle(self, pos):
  47. paddle_pos = self.canvas.coords(self.padle.id)
  48. if pos[2] >= padle_pos[0] and pos[0] <= paddle_pos[2]:
  49. if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
  50. return True
  51. return False