Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import random
- import time
- class ボール:
- def __init__(風, 画面, ラケット, 色):
- 風.画面 = 画面
- 風.ラケット = ラケット
- 風.符号 = 画面.create_oval(10, 10, 25, 25, fill=色)
- 風.画面.move(風.符号, 245, 100)
- スタート = [-3, -2, -1, 1, 2, 3]
- random.shuffle(スタート)
- 風.x = スタート[0]
- 風.y = -3
- 風.画面の高さ = 風.画面.winfo_height()
- 風.画面の幅 = 風.画面.winfo_width()
- 風.底に当たる = False
- def ラケットに当たる(風, 位置):
- ラケットの位置 = 風.画面.coords(風.ラケット.符号)
- if 位置[2] >= ラケットの位置[0] and 位置[0] <= ラケットの位置[2]:
- if 位置[3] >= ラケットの位置[1] and 位置[3] <= ラケットの位置[3]:
- return True
- return False
- def draw(風):
- 風.画面.move(風.符号, 風.x, 風.y)
- 位置 = 風.画面.coords(風.符号)
- if 位置[1] <= 0:
- 風.y = 3
- if 位置[3] >= 風.画面の高さ:
- 風.底に当たる = True
- if 風.ラケットに当たる(位置) == True:
- 風.y = -3
- if 位置[0] <= 0:
- 風.x = 3
- if 位置[2] >= 風.画面の幅:
- 風.x = -3
- class ラケット:
- def __init__(風, 画面, 色):
- 風.画面 = 画面
- 風.符号 = 画面.create_rectangle(0, 0, 100, 10, fill=色)
- 風.画面.move(風.符号, 200, 300)
- 風.x = 0
- 風.画面の幅 = 風.画面.winfo_width()
- 風.画面.bind_all('<KeyPress-Left>', 風.turn_left)
- 風.画面.bind_all('<KeyPress-Right>', 風.turn_right)
- def draw(風):
- 風.画面.move(風.符号, 風.x, 0)
- 位置 = 風.画面.coords(風.符号)
- if 位置[0] <= 0:
- 風.x = 0
- elif 位置[2] >= 風.画面の幅:
- 風.x = 0
- def turn_left(風, evt):
- 風.x = -3
- def turn_right(風, evt):
- 風.x = 3
- tk = Tk()
- tk.title("Game")
- tk.resizable(0, 0)
- tk.wm_attributes("-topmost", 1)
- 画面 = Canvas(tk, width = 500, height = 400, bd=0, highlightthickness=0)
- 画面.pack()
- tk.update()
- ラケット = ラケット(画面, 'blue')
- ボール = ボール(画面, ラケット, 'red')
- while True:
- if ボール.底に当たる == False:
- ボール.draw()
- ラケット.draw()
- tk.update_idletasks()
- tk.update()
- time.sleep(0.02)
Add Comment
Please, Sign In to add comment