Python Forum
Problem with my pong game code
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Problem with my pong game code
#1
Hi, I am following a tutorial online: freecodecamp.org on Youtube. I am learning how to program a simple pong game in Python. However, when I go and execute my code the "left paddle" associated with the "w" key on my keyboard doesn't respond. My code looks the same as the guy in the tutorial video, and I don't know why my code doesn't work. I believe it's my wn.listen() method, but I'm not sure. Any help or suggestions would be greatly appreciated.

import turtle

wn = turtle.Screen()
wn.title("Pong by @TokyoEdTech")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)

# Paddle A

paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

# Paddle B
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(350, 0)

# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)


# Function
def paddle_a_up():
    y = paddle_a.ycor()
    y += 20
    paddle_a.sety(y)


# Keyboard binding
wn.listen()
wn.onkeypress(paddle_a_up(), "w")  # this calls the function paddle_a_up()

# Main game loop
while True:
    wn.update()
Reply
#2
Line 46: drop the parens on paddle_a_up. Why? Because having the parens means calling the function and then the return value is passed to onkeypress, which isn't what you want to do. Instead, you want to pass the function itself to onkeypress, so that it can be called when the relevant key is pressed.
Than999 likes this post
Reply
#3
(Aug-28-2021, 04:41 PM)ndc85430 Wrote: Line 46: drop the parens on paddle_a_up. Why? Because having the parens means calling the function and then the return value is passed to onkeypress, which isn't what you want to do. Instead, you want to pass the function itself to onkeypress, so that it can be called when the relevant key is pressed.

Okay, thanks for your suggestion!
Reply
#4
(Sep-09-2021, 11:34 AM)Than999 Wrote:
(Aug-28-2021, 04:41 PM)ndc85430 Wrote: Line 46: drop the parens on paddle_a_up. Why? Because having the parens means calling the function and then the return value is passed to onkeypress, which isn't what you want to do. Instead, you want to pass the function itself to onkeypress, so that it can be called when the relevant key is pressed.

Okay, thanks for your suggestion!

I am having a similar issue and since i am a bit new to coding i dont properly understand what you are saying
Reply
#5
It might help if you posted the code and the errors, probably in a separate thread since it's a separate piece of code.
Reply
#6
(May-14-2022, 03:08 PM)ndc85430 Wrote: It might help if you posted the code and the errors, probably in a separate thread since it's a separate piece of code.


the problem is I am not getting any errors just like this guy here, I code it exactly i even removed (win. tracer)
I entered (turtle. done)


it just becomes unresponsive after a certain point in time.
Reply
#7
You need to show the code. We can't see your screen.
Reply
#8
(May-15-2022, 04:43 AM)ndc85430 Wrote: You need to show the code. We can't see your screen.

import turtle

wn = turtle.Screen()
wn.title ("pong by king gemini")
wn.bgcolor("black")
wn.setup(width=800, height=600)



#Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

#Paddle B
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5, stretch_len=1)
paddle_a.penup()
paddle_a.goto(+350, 0)

#Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0,0)


#function
def paddle_a_up():
y = paddle_a.ycor()
y += 20
paddle_a.sety(y)

#keyboard binding

wn.listen()
wn.onkeypress(paddle_a_up,"q")




#main game loop
while True:
wn.update()
turtle.done
Reply
#9
Works fine for me. You will want to write a paddle_a_down() function and bind it to a different key. You might also want to modify the up and down functions to prevent the paddle from moving outside the window.

What do you think is wrong?
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  needing some help to write some code for a game calculator rymdaksel 1 358 Jan-02-2024, 09:56 AM
Last Post: deanhystad
  How to send a pong on websocket-client tomtom 0 3,518 Aug-15-2022, 05:58 AM
Last Post: tomtom
  Stacking Problem in a game. HelloTobi22 2 960 Aug-05-2022, 09:48 AM
Last Post: HelloTobi22
  Problem restricting user input in my rock paper scissors game ashergreen 6 4,504 Mar-25-2021, 03:54 AM
Last Post: deanhystad
  Pong game buss0140 7 4,008 Dec-27-2020, 07:04 AM
Last Post: ndc85430
  Music Selection Game Code WyattH 3 2,376 Jul-20-2020, 11:16 AM
Last Post: ndc85430
  Guessing game problem IcodeUser8 7 3,521 Jul-19-2020, 07:37 PM
Last Post: IcodeUser8
  Beginner Code, how to print something after a number of turns (guessing game) QTPi 4 2,682 Jun-18-2020, 04:59 PM
Last Post: QTPi
  Python Hangman Game - Multiple Letters Problem t0rn 4 4,537 Jun-05-2020, 11:27 AM
Last Post: t0rn
  game of the goose - dice problem koop 4 3,411 Apr-11-2020, 02:48 PM
Last Post: ibreeden

Forum Jump:

User Panel Messages

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