我的pygame游戏中出现“ TypeError:预期为整数参数,浮点数”的原因?

我正在尝试使用pygame库对游戏进行编程,但由于某种原因,它一直在抛出TypeError:预期为integer参数,以下行出现了float错误:


if surface.get_at((player["x"], player["y"] + player["height"])) == (0,0,0,255):

leftOfPlayerOnPlatform = False



if surface.get_at((player["x"] + player["width"], player["y"] + player["height"])) == (0,0,0,255):

rightOfPlayerOnPlatform = False



if leftOfPlayerOnPlatform is False and rightOfPlayerOnPlatform is False and (player["y"] + player["height"]) + player["vy"] < windowHeight:

player["y"] += player["vy"]

我使用Thonny来运行代码。如果有人可以帮助我解决我的问题,我将不胜感激。


潇潇雨雨
浏览 568回答 2
2回答

手掌心

您使用的是Python 2.7还是3.x?如果您使用的是3.x,则默认情况下它将应用浮点除法,因此该行player["x"]&nbsp;=&nbsp;windowWidth&nbsp;/&nbsp;2将产生一个浮点数。PyGame要求所有坐标均为整数。在Python 3.x中,将//用于整数除法player["x"]&nbsp;=&nbsp;windowWidth&nbsp;//&nbsp;2&nbsp;&nbsp;#&nbsp;&nbsp;or&nbsp;use player["x"]&nbsp;=&nbsp;int(windowWidth&nbsp;/&nbsp;2)这很可能就是TypeError的含义:预期&nbsp;为整数参数,因为您所指示的行确实会引用坐标而变得浮点数。
打开App,查看更多内容
随时随地看视频慕课网APP