如何解决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 举报,一经查实,本站将立刻删除。