微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame不允许我将float用于rect.move,但我需要它

如何解决Pygame不允许我将float用于rect.move,但我需要它

由于pygame.Rect应该代表屏幕上的某个区域,因此pygame.Rect对象只能存储整数数据:

Rect对象的坐标都是整数。[…]

如果要以浮点精度存储对象位置,则必须将对象的位置存储在单独的变量或属性中,并进行pygame.Rect对象同步。round坐标并将其分配给.topleft矩形的位置(例如):

x, y = # floating point coordinates
rect.topleft = round(x), round(y)

解决方法

我最近重新创建一个版本的月球着陆器在Python
3和pygame的(要知道,老复古游戏):我的着陆器移动(rect.move)一起由于重力的y轴每一帧\。

问题:
在我达到1 m /
s之前,添加到rect.move的y值是一个小于1的浮点数int(),因为pygame不喜欢浮点数,所以我必须使用它对它进行四舍五入。
在Tkinter的先前版本中,着陆器的y坐标是这样的:

0.01
0.02
...
0.765
1.03
1.45
...

在pygame中

0
0
0
...
1
1
1
2
2
...

这真的很烦人,因为运动并不流畅。有人知道如何解决吗?像,输入浮点到rect.move?提前致谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。