【发布时间】:2018-12-13 23:05:17
【问题描述】:
我在 Windows 8 上,我使用 python 3.7,但我遇到了 pygame 问题。
首先,对不起我的英语不好。我尝试遵循 magpi 的基本游戏 v1 并尝试使用 drop.py 对其进行测试,但是当我运行时,它返回一个错误 --> 预期整数参数,得到浮点数
我卡在这条线上
if surface.get_at((player["x"], player["y"] + player["height"])) == (0, 0, 0, 255):
这是变量源
player = {
"x": int(windowWidth / 2),
"y": 0,
"height": 25,
"width": 10,
"vy": 5
}
我转换了 player["x"] 因为我知道 pygame.surface.get_at 期望一个整数而不是浮点数。但即使我用 int() 函数转换浮点值,我仍然会得到这个错误。
您能帮帮我吗,我尝试打印该值以确保它返回一个整数,它确实返回了一个整数,但我不明白为什么我仍然收到错误。
我在 stackoverflow 上进行了搜索,但没有一个主题能帮助我解决这个问题。这就是我第一次在 stackoverflow 上询问的原因。
提前感谢您的任何回答。
更新: 我在我的函数中将所有变量转换为整数并且游戏正常工作,但对我来说似乎很难编码。我做错什么了吗 ?
if surface.get_at((int(player["x"]), int(player["y"]) + int(player["height"]))) == (0, 0, 0, 255):
【问题讨论】:
-
我的想象是 player["x"] 和 player["y"] 在初始化后会在某个地方更新。尝试在对 get_at() 的函数调用中直接将它们转换为 int
-
@BardhokAjvazi 请发布short but runnable example,以便我们重现错误。此外,请始终在问题中包含完整的错误消息(堆栈跟踪)。
-
@skrx 当我在电脑前时,我将发布一个可运行的示例。再次感谢您的帮助。
-
@The4thIceman 我在函数内部将所有变量转换为整数,它可以工作,但它似乎是硬编码的。
标签: python-3.x pygame