0
私はPythonでポンスタイルのゲームを作ろうとしていますが、そのたびにタイトルにエラーが書き込まれます。私はすでにエラーを修正するためにグーグルの方法を試みましたが、私は最初から始めるべき場所がありません。私の距離機能が機能していない可能性があります。しかし、何かが壊れる可能性があるので、どんな助けも愛されるでしょう!また、これが出てくる完全なエラーです:TypeError:順序付け不可能な型:NoneType()<int()
Traceback (most recent call last):
File "/Users/NAME/Documents/PyPong.py", line 47, in <module>
checkCollisions()
File "/Users/NAME/Documents/PyPong.py", line 35, in checkCollisions
if distance(b,e) < 10:
TypeError: unorderable types: NoneType() < int()
そして、これはコードです:
from tkinter import *
from math import *
##MAIN GAME PART##
window = Tk()
canvas = Canvas(window,width=400,height=400)
canvas.pack()
##FUNCTIONS##
def movePaddles(event):
key=event.keysym
if key == 'Up':
canvas.move(PaddleTwo,0,-10)
elif key == 'Down':
canvas.move(PaddleTwo,0,10)
if key == 'w':
canvas.move(PaddleOne,0,-10)
elif key == 's':
canvas.move(PaddleOne,0,10)
if key == 'j':
canvas.move(PingPongBall,-10,0)
elif key == 'k':
canvas.move(PingPongBall,10,0)
def distance(target1,target2):
target1coords = canvas.coords(target1)
target2coords = canvas.coords(target2)
x1 = (target1coords[0] + target1coords[2])/2
y1 = (target1coords[1] + target1coords[3])/2
x2 = (target2coords[0] + target2coords[2])/2
y2 = (target2coords[1] + target2coords[3])/2
d = sqrt((x2-x1)** 2 + (y2-y1)** 2)
def checkCollisions():
for e in PaddleList:
if distance(PingPongBall,e) < 10:
print('hit') #print info on the shell
##PADDLES##
PaddleOne = canvas.create_rectangle(10 ,150 ,25 ,250 ,fill='blue')
PaddleTwo = canvas.create_rectangle(400,150 ,385 ,250 ,fill='blue')
PingPongBall = canvas.create_rectangle(200, 200, 210 ,210 ,fill='red')
PaddleList = [PaddleOne,PaddleTwo]
BallList = [PingPongBall]
canvas.bind_all('<Key>',movePaddles)
while True:
checkCollisions()
を 'ので、それはあなたの比較が失敗した理由である' NONE'を返し、何も返さdistance'doesn't。かなり明示的なエラーメッセージ。 – miradulo
'def distance()'関数の最後に 'return d 'が必要 – TessellatingHeckler
あなたは距離から何も返さない – PyNEwbie