Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import random
- import time
- class Ball:
- def __init__(self, canvas, paddle, color, score):
- self.canvas = canvas
- self.paddle = paddle
- self.score = score
- self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
- self.canvas.move(self.id, 245, 100)
- starts = [-3, -2, -1, 1, 2, 3]
- random.shuffle(starts)
- self.x = starts[0]
- self.y = -1
- self.canvas_width = self.canvas.winfo_width()
- self.canvas_height = self.canvas.winfo_height()
- self.hit_bottom = False
- def draw(self):
- self.canvas.move(self.id, self.x, self.y)
- pos = self.canvas.coords(self.id)
- if pos[0] <= 0:
- self.x = 3.5
- if pos[3] >= self.canvas_height:
- self.canvas.create_text(250, 200, font="Times 50", text="GAME OVER", fill="lawn green")
- self.canvas.create_text(250, 330, font="Times 20", text="You did good, but not good enough.", fill="lawn green")
- self.canvas.create_text(160, 250, font="Times 20", text="Your score is,", fill="lawn green")
- self.hit_bottom = True
- if pos[2] >= self.canvas_width:
- self.x = -3.5
- if pos[1] <= 0:
- self.y = 3.5
- if pos[3] >= self.canvas_height:
- self.y = -3.5
- if self.hit_paddle(pos) == True:
- self.y = -3.5
- self.canvas.create_text(250, 250, font="Times 20", text=self.score, fill="coral4")
- self.score += 1
- self.canvas.create_text(250, 250, font="Times 20", text=self.score, fill="lawn green")
- def hit_paddle(self, pos):
- paddle_pos = self.canvas.coords(self.paddle.id)
- if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
- if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
- return True
- return False
- class Paddle:
- def __init__(self, canvas, color):
- self.canvas = canvas
- self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)
- self.canvas.move(self.id, 200, 300)
- self.x = 0
- self.canvas_width = self.canvas.winfo_width()
- self.canvas.bind_all("<KeyPress-Left>", self.turn_left)
- self.canvas.bind_all("<KeyPress-Right>", self.turn_right)
- def turn_left(self, evt):
- self.x = -5
- def turn_right(self, evt):
- self.x = 5
- def draw(self):
- self.canvas.move(self.id, self.x, 0)
- pos = self.canvas.coords(self.id)
- if pos[0] <= 0:
- self.x = 0
- elif pos[2] >= self.canvas_width:
- self.x = 0
- tk = Tk()
- tk.title("Game")
- tk.resizable(0,0)
- tk.wm_attributes("-topmost", 1)
- canvas = Canvas(tk, width=500, height=500, bd=0, bg="coral4", highlightthickness=0)
- canvas.pack()
- tk.update()
- score = 0
- paddle = Paddle(canvas, "blue")
- ball = Ball(canvas, paddle, "yellow", score)
- while 1:
- if ball.hit_bottom == False:
- ball.draw()
- paddle.draw()
- tk.update_idletasks()
- tk.update()
- time.sleep(0.01)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement