当前位置:   article > 正文

pygame 贪吃蛇小游戏 部分代码错误分析_deprecationwarning: an integer is required (got ty

deprecationwarning: an integer is required (got type float). implicit conver

原代码链接

版本: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
  • 1

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	# 定义中心点
  • 1

拆分后:

rotatedRect1.centerx = int(Window_Width / 2)	# 定义中心的x,强制转成整型
rotatedRect1.centery = int(Window_Height / 2)	# 定义中心点y,强制转成整型
  • 1
  • 2

这样之后,后续还是有两处一样的报错。但是不影响exe文件的运行了。

gameRect.midtop = (Window_Width / 2, 10)
overRect.midtop = (Window_Width / 2, gameRect.height + 10 + 25)
  • 1
  • 2

总结
这个代码在定义关键的左边的时候,需要的是整型(int),但是捕获的却是其他,目前我还没找到好的办法完全解决。
但是解决了中心点的问题(rotatedRect1.center),起码exe文件能运行了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/611080
推荐阅读
相关标签
  

闽ICP备14008679号