版本:Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
1.问题出现
我复制源代码,然后运行,实际py文件运行没问题,游戏能按照需求运行,但是出现了报错。
我开始不以为然,但是在py转成exe的后,exe文件无法运行。于是我开始着手于对这个报错的处理。
代码行
rotatedRect1.center = (Window_Width / 2, Window_Height / 2
DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using int is deprecated, and may be removed in a future version of Python.
“弃用警告:需要一个整数(got类型为float)。不建议使用__int__隐式转换为整数,并且在将来的Python版本中可能会删除隐式转换。”
但实际“rotatedRect1.center”是tuple元组,具体我也不太清楚
2. 原因分析
后查询得知,这是由于代码类型的问题。
这行代码的类型不对,应该要整型的,但是捕获的是浮点型。???原文翻译是这样,但实际可能不对,总之是类型错误
3.解决
(因为确实不知道怎么把这个坐标转成)
于是我就用了简单粗暴的方法,直接把这行代码拆成两行。
原代码:
rotatedRect1.center = (Window_Width / 2, Window_Height / 2 # 定义中心点
拆分后:
rotatedRect1.centerx = int(Window_Width / 2) # 定义中心的x,强制转成整型
rotatedRect1.centery = int(Window_Height / 2) # 定义中心点y,强制转成整型
这样之后,后续还是有两处一样的报错。但是不影响exe文件的运行了。
gameRect.midtop = (Window_Width / 2, 10)
overRect.midtop = (Window_Width / 2, gameRect.height + 10 + 25)
总结
这个代码在定义关键的左边的时候,需要的是整型(int),但是捕获的却是其他,目前我还没找到好的办法完全解决。
但是解决了中心点的问题(rotatedRect1.center),起码exe文件能运行了。