一日一技:用Python做游戏有多简单 (2)

现在用Python来制作游戏越来越方便,虽然某些方面有所限制。但是利用Pygame工具包基本能制作所有的2D游戏在制作的同时对游戏的理解也会更加深刻,因为本质上都是对图片的定位和图片碰撞的判断,从而以此为原理衍生出各种各样的游戏类型。

接下来,我就给小伙伴们介绍几款有意思又好玩的小游戏(内附源代码)

这款游戏名叫flappy bird(中文名:扑扇的小鸟),是由越南独立开发者daoDong Nguyen开发的手机游戏,这个游戏最大的特点就是通关难如登天。因为不断的嗝屁,迅速的restart,激起了求胜的欲望,类似的游戏如跳一跳就是这种类型

但是当自己亲手用pygame来制作这款游戏时候,这个游戏最大的特点便简单如弟弟,因为不仅是用上帝视角来看这款游戏,还可以修改游戏中小鸟的图片和背景音乐,只需要六步就可以开发出一款《小鸟管道冲刺》

一、《小鸟管道冲刺》

小鸟管道冲刺 点击 

1.设置窗口背景

设置背景,并将背景图片放置窗口上。并通过轮询时间来获取对电脑的操控

if __name__ == '__main__':
    """主程序"""
    pygame.init()                            # 初始化pygame
    size = width, height = 400, 650          # 设置窗口
    screen = pygame.display.set_mode(size)   # 显示窗口
    background = pygame.image.load("assets/background.png")  # 加载背景图片

    while True:
        # 轮询事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        screen.blit(background,(0,0))
    pygame.quit()

2.定义小鸟类

  • 属性:设置小鸟的皮肤,坐标,降落速度,生命状态
  • 方法:更新小鸟坐标位置
class Bird(object):
    """定义一个鸟类"""

    def __init__(self):
        """定义初始化方法"""
        self.birdRect = pygame.Rect(65, 50, 50, 50)  # 鸟的矩形
        # 定义鸟的3种状态列表
        self.birdStatus = [pygame.image.load("assets/1.png"),
                           pygame.image.load("assets/2.png"),
                           pygame.image.load("assets/dead.png")]
        self.status = 0      # 默认飞行状态
        self.birdX = 120     # 鸟所在X轴坐标,即是向右飞行的速度
        self.birdY = 350     # 鸟所在Y轴坐标,即上下飞行高度
        self.jump = False    # 默认情况小鸟自动降落
        self.jumpSpeed = 10  # 跳跃高度
        self.gravity = 5     # 重力
        self.dead = False    # 默认小鸟生命状态为活着

    def birdUpdate(self):
        if self.jump:
            # 小鸟跳跃
            self.jumpSpeed -= 1           # 速度递减,上升越来越慢
            self.birdY -= self.jumpSpeed  # 鸟Y轴坐标减小,小鸟上升
        else:
            # 小鸟坠落
            self.gravity += 0.2           # 重力递增,下降越来越快
            self.birdY += self.gravity    # 鸟Y轴坐标增加,小鸟下降
        self.birdRect[1] = self.birdY     # 更改Y轴位置

3.定义管道类

  • 属性:x轴坐标,上管道和下管道的管道皮肤
  • 方法:更新管道坐标位置
class Pipeline(object):
    """定义一个管道类"""

    def __init__(self):
        """定义初始化方法"""
        self.wallx = 400  # 管道所在X轴坐标
        self.pineUp = pygame.image.load("assets/
  • 18
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值