pygame 贪吃蛇小游戏 部分代码错误分析

原代码链接

版本: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文件能运行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值