Python 当速度小于1时,精灵会粘在窗口的边框上
我试图为我的游戏制作移动云,但当我将云的速度设置为小于1时,云的精灵会粘在边界上。如果云的一部分已经在屏幕之外,我希望云继续移动。 我发现如果rect的x等于0,精灵就会卡住。如何修复它 我的代码: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
类云(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)