Guest User

Untitled

a guest
Jan 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. from tkinter import *
  2. import random
  3. import time
  4.  
  5. class ボール:
  6. def __init__(風, 画面, ラケット, 色):
  7. 風.画面 = 画面
  8. 風.ラケット = ラケット
  9. 風.符号 = 画面.create_oval(10, 10, 25, 25, fill=色)
  10. 風.画面.move(風.符号, 245, 100)
  11. スタート = [-3, -2, -1, 1, 2, 3]
  12. random.shuffle(スタート)
  13. 風.x = スタート[0]
  14. 風.y = -3
  15. 風.画面の高さ = 風.画面.winfo_height()
  16. 風.画面の幅 = 風.画面.winfo_width()
  17. 風.底に当たる = False
  18.  
  19. def ラケットに当たる(風, 位置):
  20. ラケットの位置 = 風.画面.coords(風.ラケット.符号)
  21. if 位置[2] >= ラケットの位置[0] and 位置[0] <= ラケットの位置[2]:
  22. if 位置[3] >= ラケットの位置[1] and 位置[3] <= ラケットの位置[3]:
  23. return True
  24. return False
  25.  
  26. def draw(風):
  27. 風.画面.move(風.符号, 風.x, 風.y)
  28. 位置 = 風.画面.coords(風.符号)
  29. if 位置[1] <= 0:
  30. 風.y = 3
  31. if 位置[3] >= 風.画面の高さ:
  32. 風.底に当たる = True
  33. if 風.ラケットに当たる(位置) == True:
  34. 風.y = -3
  35. if 位置[0] <= 0:
  36. 風.x = 3
  37. if 位置[2] >= 風.画面の幅:
  38. 風.x = -3
  39.  
  40. class ラケット:
  41. def __init__(風, 画面, 色):
  42. 風.画面 = 画面
  43. 風.符号 = 画面.create_rectangle(0, 0, 100, 10, fill=色)
  44. 風.画面.move(風.符号, 200, 300)
  45. 風.x = 0
  46. 風.画面の幅 = 風.画面.winfo_width()
  47. 風.画面.bind_all('<KeyPress-Left>', 風.turn_left)
  48. 風.画面.bind_all('<KeyPress-Right>', 風.turn_right)
  49.  
  50. def draw(風):
  51. 風.画面.move(風.符号, 風.x, 0)
  52. 位置 = 風.画面.coords(風.符号)
  53. if 位置[0] <= 0:
  54. 風.x = 0
  55. elif 位置[2] >= 風.画面の幅:
  56. 風.x = 0
  57.  
  58. def turn_left(風, evt):
  59. 風.x = -3
  60.  
  61. def turn_right(風, evt):
  62. 風.x = 3
  63.  
  64. tk = Tk()
  65. tk.title("Game")
  66. tk.resizable(0, 0)
  67. tk.wm_attributes("-topmost", 1)
  68. 画面 = Canvas(tk, width = 500, height = 400, bd=0, highlightthickness=0)
  69. 画面.pack()
  70. tk.update()
  71.  
  72. ラケット = ラケット(画面, 'blue')
  73. ボール = ボール(画面, ラケット, 'red')
  74.  
  75. while True:
  76. if ボール.底に当たる == False:
  77. ボール.draw()
  78. ラケット.draw()
  79. tk.update_idletasks()
  80. tk.update()
  81. time.sleep(0.02)
Add Comment
Please, Sign In to add comment