Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当速度小于1时,精灵会粘在窗口的边框上_Python_Pygame - Fatal编程技术网

Python 当速度小于1时,精灵会粘在窗口的边框上

Python 当速度小于1时,精灵会粘在窗口的边框上,python,pygame,Python,Pygame,我试图为我的游戏制作移动云,但当我将云的速度设置为小于1时,云的精灵会粘在边界上。如果云的一部分已经在屏幕之外,我希望云继续移动。 我发现如果rect的x等于0,精灵就会卡住。如何修复它 我的代码: 类云(pygame.sprite.sprite): 定义初始化(自): 超级(云,自我)。\uuuu初始化 images=[load_image(f“cloud{i}.png”)表示范围(1,5)内的i] self.image=random.choice(图像) self.rect=self.ima

我试图为我的游戏制作移动云,但当我将云的速度设置为小于1时,云的精灵会粘在边界上。如果云的一部分已经在屏幕之外,我希望云继续移动。 我发现如果rect的x等于0,精灵就会卡住。如何修复它

我的代码:

类云(pygame.sprite.sprite):
定义初始化(自):
超级(云,自我)。\uuuu初始化
images=[load_image(f“cloud{i}.png”)表示范围(1,5)内的i]
self.image=random.choice(图像)
self.rect=self.image.get_rect()
self.rect.x=random.randrange(宽度-self.rect.w)
self.rect.y=random.randrange(高度-self.rect.h)
self.vel=10/FPS#返回值小于1
def更新(自身,事件=无):
如果不是事件:
self.rect.x-=self.vel

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

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

当对象的新位置设置为Rect对象时,坐标的分数部分丢失:

self.rect.x-=self.vel
如果要以浮点精度存储对象位置,则必须将对象位置分别存储在单独的变量属性中,并同步
pygame.Rect
对象。坐标并将其分配到矩形的位置(例如
.topleft
):

类云(pygame.sprite.sprite):
定义初始化(自):
超级(云,自我)。\uuuu初始化
images=[load_image(f“cloud{i}.png”)表示范围(1,5)内的i]
self.image=random.choice(图像)
self.rect=self.image.get_rect()
self.rect.x=random.randrange(宽度-self.rect.w)
self.rect.y=random.randrange(高度-self.rect.h)
self.x,self.y=self.rect.topleft
self.vel=10/FPS#返回值小于1
def更新(自身,事件=无):
如果不是事件:
self.x-=self.vel
self.rect.topleft=圆形(self.x),圆形(self.y)