Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bounce Game Problems
#1
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)
 

	
Error:
Traceback (most recent call last): File "C:\Users\sheep\Desktop\Ayden's Apps\Bounce The Game.py", line 76, in <module> ball.draw() File "C:\Users\sheep\Desktop\Ayden's Apps\Bounce The Game.py", line 32, in draw if self.hit_paddle(pos) == True: File "C:\Users\sheep\Desktop\Ayden's Apps\Bounce The Game.py", line 21, in hit_paddle if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]: NameError: name 'paddle_pos' is not defined
Reply


Messages In This Thread
Bounce Game Problems - by SheeppOSU - Apr-25-2018, 08:09 PM
RE: Bounce Game Problems - by woooee - Apr-25-2018, 08:19 PM
RE: Bounce Game Problems - by nilamo - Apr-25-2018, 08:23 PM
RE: Bounce Game Problems - by SheeppOSU - May-07-2018, 07:58 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Easy equipment system for simple game and problems with it naisyrk 3 3,457 Sep-01-2018, 10:05 AM
Last Post: Gribouillis
  Coding Problems With Mr.Stickman Game SheeppOSU 2 4,270 Jun-29-2018, 08:12 PM
Last Post: volcano63

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020