最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python实现超级玛丽游戏系列教程02玛丽走跑

    正文概述 掘金(豆约翰)   2020-12-24   676

    配套视频教程

    配套视频教程

    项目代码

    项目代码

    最终效果

    Python实现超级玛丽游戏系列教程02玛丽走跑

    行走

    constants.py

    STAND = 'standing'
    WALK = 'walk'
    
    SMALL_ACCEL = .2
    SMALL_TURNAROUND = .35
    

    Python实现超级玛丽游戏系列教程02玛丽走跑

    玛丽类构造函数修改如下:

    Python实现超级玛丽游戏系列教程02玛丽走跑

    玛丽类新增及修改

        def update(self, keys):
            self.handle_state(keys)
            self.update_position()
            self.animation()
    
        def update_position(self):
            self.rect.x += self.x_vel
            self.rect.y += self.y_vel
    
        def handle_state(self, keys):
            if self.state == c.STAND:
                self.standing(keys)
            elif self.state == c.WALK:
                self.walking(keys)
    
    
        def animation(self):
            if self.facing_right:
                self.image = self.right_frames[self.frame_index]
            else:
                self.image = self.left_frames[self.frame_index]
    
        def load_from_sheet(self):
            self.right_frames.append(
                self.get_image(178, 32, 12, 16))  # right
            self.right_frames.append(
                self.get_image(80, 32, 15, 16))  # right walking 1
            self.right_frames.append(
                self.get_image(99, 32, 15, 16))  # right walking 2
            self.right_frames.append(
                self.get_image(114, 32, 15, 16))  # right walking 3
            self.right_frames.append(
                self.get_image(144, 32, 16, 16))  # right jump
            self.right_frames.append(
                self.get_image(130, 32, 14, 16))  # right skid
    
            # The left image frames are numbered the same as the right
            # frames but are simply reversed.
    
            for frame in self.right_frames:
                new_image = pg.transform.flip(frame, True, False)
                self.left_frames.append(new_image)
    

    玛丽类新增

       def standing(self, keys):
            self.frame_index = 0
            self.x_vel = 0
            self.y_vel = 0
    
            if keys[pg.K_LEFT]:
                self.facing_right = False
                self.state = c.WALK
            elif keys[pg.K_RIGHT]:
                self.facing_right = True
                self.state = c.WALK
            else:
                self.state = c.STAND
    
        def walking(self, keys):
            if self.frame_index == 0:
                self.frame_index += 1
            else:
                if self.frame_index < 3:
                    self.frame_index += 1
                else:
                    self.frame_index = 1
    
            if keys[pg.K_LEFT]:
                self.facing_right = False
                self.x_accel = c.SMALL_ACCEL
    
                #向左速度是负的,如果没达到最小的负的速度,继续向左
                # 比如 -3 > -4,那就继续减小
                if self.x_vel > (self.max_x_vel * -1):
                    self.x_vel -= self.x_accel
    
            elif keys[pg.K_RIGHT]:
                self.facing_right = True
                self.x_accel = c.SMALL_ACCEL
    
                if self.x_vel < self.max_x_vel:
                    self.x_vel += self.x_accel
    
    

    不抖

    Python实现超级玛丽游戏系列教程02玛丽走跑 Python实现超级玛丽游戏系列教程02玛丽走跑 Python实现超级玛丽游戏系列教程02玛丽走跑

    能停

    Python实现超级玛丽游戏系列教程02玛丽走跑

    转身和加速

    Python实现超级玛丽游戏系列教程02玛丽走跑


    起源地下载网 » Python实现超级玛丽游戏系列教程02玛丽走跑

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元