gpt4 book ai didi

python - 为什么我的 Sprite 不动

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:11 27 4
gpt4 key购买 nike

我的 Sprite 应该在屏幕上从右向左移动,并且应该有多个相同的 Sprite 从随机的 Y 坐标移动,而 X 应该保持不变。相反,此刻没有任何移动,只有一个 Sprite 。

            class Mob(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((90, 90)).convert_alpha()
self.image = pygame.image.load(badguy_file).convert_alpha()
self.image = pygame.transform.scale(self.image, (100, 100))
self.rect = pygame.Rect(x, y, 100, 100)
self.x = x
self.y = y
self.rect.x = random.randrange(800 - 100)
self.rect.y = random.randrange(-100, -40)
self.speedx = 5
self.mask = pygame.mask.from_surface(self.image)

def update(self):
self.rect.y += self.speedy
if self.rect.top > height + 10 or self.rect.left < -25 or self.rect.right > width + 20:
self.rect.x = random.randrange(width - self.rect.width)
self.rect.y = random.randrange(-100, -40)
self.speedx = random.randrange(2,0)

def render(self, screen):
screen.blit(self.image, (self.x, self.y))

mobYRange = random.randrange(200, 450)

mobs = pygame.sprite.Group()
for i in range(8):
mob = Mob(850,mobYRange)
mobs.add(mob)
mob.render(screen)

最佳答案

你没有实际的随机 y 轴,因为一旦生成的随机列表被传递给所有的 Mob 实例,使用下面的代码:

mobs = pygame.sprite.Group()       
for i in range(8):
mob = Mob(850, random.randrange(200, 450))
mobs.add(mob)
mob.render(screen)

关于python - 为什么我的 Sprite 不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51817123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com