Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

pygame - TypeError: integer argument expected, got float (on an IF instance) python 3.8.2


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The arguments for screen.get_at as for range needs to be integral. round the floating point coordinates to integral values:

if screen.get_at((p[0] + pix + ox, p[1] + oy)) == blue:

if screen.get_at((round(p[0] + pix + ox), round(p[1] + oy)))

for pix in range(p[0]+10,p[0]+38,9):

for pix in range(round(p[0]+10), rouns(p[0]+38), 9):

Use the // (floor division) operator instead of the / (division) operator to avoid floating point values:

hw = screenWidth / 2
hh = screenHeight / 2

hw = screenWidth // 2
hh = screenHeight // 2

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...