Python basi c pong game,>> не поддерживается между экземплярами 'method' и 'int' - PullRequest
0 голосов
/ 11 апреля 2020

Я только что начал python через несколько дней go как мой первый язык программирования, поэтому проблема, с которой я столкнулся, вероятно, не имеет большого значения. Извините, если это простая синтаксическая ошибка. Я строю основную игру c pong, используя модуль черепахи, и столкнулся с проблемой, заставляющей мяч отскочить от весла. Когда ycor шара находится между ycor весла, я ожидаю, что шар ударится, но шар, кажется, придерживается весла, и я получаю сообщение, говорящее

Traceback (последний вызов последний): Файл "C: \ Users \ USER-PC \ Desktop \ Python \ Pong game practice.py", строка 92, если if ball.xcor ()> 330 и (ball.ycor () paddle_b.ycor () - 50): TypeError: '>' не поддерживается между экземплярами 'method' и 'int'

Я предполагаю, что ошибка произошла в следующем части.

в то время как True: wn.update ()

# Move the ball
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)

# Border checking
if ball.ycor() > 290:
    ball.sety(290)
    ball.dy *= -1

if ball.ycor() < -290:
    ball.sety(-290)
    ball.dy *= -1

if ball.xcor() > 390:
    ball.setx(0)
    ball.dx *= -1

if ball.xcor() < -390:
    ball.setx(0)
    ball.dx *= -1

# Paddle and ball collisions
if ball.xcor() > 330 and (ball.ycor() < paddle_b.ycor() + 50 and ball.ycor > paddle_b.ycor() - 50):
    ball.setx(340)
    ball.dx *= -1

Спасибо за любые советы или помощь.

1 Ответ

1 голос
/ 11 апреля 2020

Сама проблема у вас в следующем месте

ball.ycor > paddle_b.ycor() - 50

ball.ycor - это метод python, когда paddle_b.ycor() - 50 - это int, о чем вас предупреждал интерпретатор. Вам просто нужно добавить скобки для фактического вызова метода.

ball.ycor() > paddle_b.ycor() - 50
...