当前位置: 首页 > 面试题库 >

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

井通
2023-03-14
问题内容

我最近重新创建一个版本的月球着陆器在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?提前致谢!


问题答案:

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

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

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

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


 类似资料:
  • 问题内容: 我试图获取我的Layout 以适合我要移植到Java的程序的外观,在此之前,我已经使用了多个LayoutManager并获得了巨大的成功,但是由于某些原因,我似乎无法获得此布局都在工作。我的目标是有权利(东)侧的包含一个“查找下一个”和自上而下的命令“取消”按钮,然后在下面的任何额外的空间,从而使两个按钮总是在的顶部,但由于某种原因,它会不断忽略更改a宽度的任何尝试(这是我迷失的地方)

  • 我用Spring靴和Spring安全。 我这样添加基于url的安全性 有没有办法只授权get、post、put…在url上担任某些角色?

  • 我把它放在php中。ini文件: 但我仍然可以调用它们(tested exec和shell_exec)。我已经多次重新启动Web服务器。 (窗户下)。

  • 我正在创建一个程序来提示用户输入信息,所以我创建了多个变量,然后让程序根据这些变量输出信息。出于某种原因,每当我声明新的年龄变量时,程序都会给我一个奇怪的错误,在线程“main”中说Exception。我试着将第一次扫描关闭到,但不起作用。 我的密码是

  • 在. java 我得到了 1.8.0_45 但是当我把它打包成一个jar包并在另一个项目中使用时,它告诉我 为什么? 在cmd中 C:\用户\想法 Java版本"1.8.0_45" Java(TM)SE运行时环境(build 1.8.0_45-b15) JavaHotSpot(TM)64位服务器VM(构建25.45-b02,混合模式)