现在用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/