pong paddles wont move - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Game Development (https://python-forum.io/forum-11.html) +--- Thread: pong paddles wont move (/thread-39078.html) |
pong paddles wont move - skullkat232 - Dec-29-2022 help pls! i am having trouble with the pong paddles and there are no visible errors in my code, pLeASe hELPA mE :(((( Here's my code: import turtle wn = turtle.Screen() wn.title("pong py project") wn.bgcolor("yellow") wn.setup(width=800, height=600) #wn.tracer(0) # Paddle A paddle_a = turtle.Turtle() paddle_a.speed(3) paddle_a.shape("square") paddle_a.shapesize(stretch_wid=5, stretch_len=1) paddle_a.color('white') paddle_a.penup() paddle_a.goto(-350, 0) # Paddle B paddle_b = turtle.Turtle() paddle_b.speed(3) paddle_b.shape("square") paddle_b.shapesize(stretch_wid=5, stretch_len=1) paddle_b.color('white') paddle_b.penup() paddle_b.goto(+350, 0) # Ball ball = turtle.Turtle() ball.speed(3) ball.shape("square") ball.color('white') ball.penup() ball.goto(0, 0) # Function def paddle_a_up(): y = paddle_a.ycor(y) y += 20 paddle_a.sety(y) def paddle_a_down(): y = paddle_a.ycor(y) y -= 20 paddle_a.sety(y) # Keyboard binding wn.onkeypress(paddle_a_up, 'w') wn.onkeypress(paddle_a_down, 's') #main game loop while True: wn.update() RE: pong paddles wont move - deanhystad - Dec-29-2022 You need to listen() for key press events. You also had an indenting problem on wn.onkeypress() You should consider making some classes to organize your code. This is your program using classes to make two movable paddles and a ball with 14 fewer lines of code. import turtle class Paddle(turtle.Turtle): def __init__(self, x, keys=None, color='black'): super().__init__() self.speed(3) self.shape('square') self.shapesize(stretch_wid=5, stretch_len=1) self.color(color) self.penup() self.goto(x, 0) if keys: # Have key press events move the paddles wn.onkeypress(lambda: self.move_y(20), keys[0]) wn.onkeypress(lambda: self.move_y(-20), keys[1]) def move_y(self, step): self.sety(self.ycor()+step) class Ball(turtle.Turtle): def __init__(self, color='black', keys=None): super().__init__() self.speed(3) self.shape('circle') self.color(color) self.penup() self.goto(0, 0) wn = turtle.Screen() wn.setup(width=800, height=600) paddles = (Paddle(-350, "ad"), Paddle(350, "jl")) ball = Ball() wn.listen() # Need to call this to have turtle listen for key press events. while True: wn.update() RE: pong paddles wont move - skullkat232 - Dec-30-2022 omgomgomg thank you so much! the paddles are moving now, but now idk how to get the ball moving... ik this code looks alot like the code you showed me, sry for that, i'm still learning the basics of python/turtle import turtle class Paddle (turtle.Turtle): def __init__(self, x, keys=None, color='white'): super().__init__() self.speed(3) self.shape('square') self.shapesize(stretch_wid=5, stretch_len=1) self.color(color) self.penup() self.goto(x, 0) if keys: wn.onkeypress(lambda: self.move_y(20), keys[0]) wn.onkeypress(lambda: self.move_y(-20), keys[1]) def move_y(self, step): self.sety(self.ycor()+step) class Ball (turtle.Turtle): def __init__(self, color='white', keys=None): super().__init__() self.speed(3) self.shape('circle') self.color(color) self.penup() self.goto(0, 0) wn = turtle.Screen() wn.setup(width=800, height=600) paddles = (Paddle(-350, "ad"), Paddle(350, "jl")) ball = Ball() wn.bgcolor('yellow') wn.title('pong') wn.listen() while True: wn.update() RE: pong paddles wont move - deanhystad - Dec-30-2022 Code to move the ball will go in the while loop. Move ball, check for collision with walls or paddle, add to score if ball gets past the paddle, etc... You have a lot of coding ahead. RE: pong paddles wont move - skullkat232 - Dec-30-2022 okidoki, thanks alot, you took the time out of ur day to help me, i appretiate that thx RE: pong paddles wont move - Vadanane - Feb-13-2023 It depends on what you are trying to do. If you are trying to create a web application, then you will need to use a web framework such as Django or Flask. If you are trying to create a desktop application, then you will need to use a GUI library such as Tkinter or PyQt. If you are trying to create a command line application, then you will need to use a library such as argparse or click. |