![]() |
Bounce Game Problems - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Bounce Game Problems (/thread-9736.html) |
Bounce Game Problems - SheeppOSU - Apr-25-2018 So i finished the Bounce game and when I hit run it didn't work so I checked the errors it gave and the lines it told me but it's the same code from the book. So maybe you can find an error with it. I also put the error it gave me. import time import random from tkinter import * class Ball: def __init__(self, canvas, paddle, color): self.canvas = canvas self.paddle = paddle 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 = -3 self.canvas_height = self.canvas.winfo_height() self.canvas_width = self.canvas.winfo_width() self.hit_bottom = False def hit_paddle(self, pos): paddl_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 def draw(self): self.canvas.move(self.id, self.x, self.y) pos = self.canvas.coords(self.id) if pos[1] <= 0: self.y = 1 if pos[3] >= self.canvas_height: self.hit_bottom = True if self.hit_paddle(pos) == True: self.y = -3 if pos[0] <= 0: self.x = 3 if pos[2] >= self.canvas_width: self.x = -3 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 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 def turn_left(self, evt): self.x = -2 def turn_right(self, evt): self.x = 2 tk = Tk() tk.title("Game") tk.resizable(0, 0) tk.wm_attributes("-topmost", 1) canvas = Canvas(tk, width=400, height=400, bd=0, highlightthickness=0) canvas.pack() tk.update() paddle = Paddle(canvas, 'blue') ball = Ball(canvas, paddle, 'red') while 1: if ball.hit_bottom == False: ball.draw() paddle.draw() ball.draw() paddle.draw() tk.update_idletasks() tk.update() time.sleep(0.01)
RE: Bounce Game Problems - woooee - Apr-25-2018 The error message is correct, paddle_pos has not been defined anywhere in the code you posted. It is perhaps paddle.pos but then you will have to change it in the Paddle class as well. It's best to ask this question of whoever wrote this code as the layout is not clear. RE: Bounce Game Problems - nilamo - Apr-25-2018 (Apr-25-2018, 08:09 PM)SheeppOSU Wrote: paddl_pos = self.canvas.coords(self.paddle.id) Check your spelling :p RE: Bounce Game Problems - SheeppOSU - May-07-2018 yes that worked but the blue paddle isn't moving at all |