鱼C论坛

 找回密码
 立即注册
查看: 895|回复: 0

pygame中me的移动问题

[复制链接]
发表于 2021-12-26 13:49:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 裕~ 于 2022-1-4 21:44 编辑

对飞机的rect位置参数进行加减时,self.speed如果设置为0.3或者0.5就不能加只能减,self.speed设置为1时就是正常的,我主要是想解答这个疑惑

当self.speed为0.3时,如果把right和bottom中的self.speed改成1,可以向对的方向移动;如果把right和bottom中的+改成-,可以向左和上移动;如果把left和top的-改成+,不能移动;如果在self.speed前加-号,结果和上面相同。

main函数中:
# 控制myself移动
        if animal.active:
            key_pressed = pygame.key.get_pressed()
        
            if key_pressed[pygame.K_w]:
                myself.move_top()
               
            if key_pressed[pygame.K_a]:
                myself.move_left()

            if key_pressed[pygame.K_s]:
                myself.move_bottom()

            if key_pressed[pygame.K_d]:
                myself.move_right()

me模块中:
   class Me(pygame.sprite.Sprite):
    def __init__(self,bg_size):
        pygame.sprite.Sprite.__init__(self)

        self.t1_top = pygame.image.load('me_images/me.png').convert_alpha()
        self.t1_left = pygame.transform.rotate(self.t1_top, 90)
        self.t1_bottom = pygame.transform.rotate(self.t1_top, 180)
        self.t1_right = pygame.transform.rotate(self.t1_top, 270)

        self.image = self.t1_top

        self.width = bg_size[0]
        self.height = bg_size[1]

        self.rect = self.image.get_rect()

        self.rect.left = random.randint(0, self.width - self.rect.width)
        self.rect.top = random.randint(0, self.height - self.rect.height)

        self.speed = 1

        self.accelerate = 0.1

    def move_left(self):
        self.image = self.t1_left
        if self.rect.left > 0:
            self.rect.left -= self.speed

    def move_right(self):
        self.image = self.t1_right
        if self.rect.left < self.width - self.rect.width:
            self.rect.left += self.speed

    def move_top(self):
        self.image = self.t1_top
        if self.rect.top > 0:
            self.rect.top -= self.speed

    def move_bottom(self):
        self.image = self.t1_bottom
        if self.rect.top < self.height - self.rect.height:
            self.rect.top += self.speed

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表