pygame可以做很多游戏, 那我们今天就来做一下植物大战僵尸把。
游戏一定是在一个窗口中进行的, 所以我们第一步要创建一个窗口。
我们先创建一个用来控制游戏状态的类。
import pygame
background = pygame.image.load("backpic.png")
class GameState(object):
def __init__(self):
#初始化游戏
pygame.display.init()
#创建一个大小为871, 650的窗口
GameState.window = pygame.display.set_mode((871, 650))
#修改窗口标题
pygame.display.set_caption("Plant vs Zomb")
def start_game(self):
#开始游戏
screen = pygame.display.set_mode((871, 650))
#窗口显示背景图片
screen.blit(background, (0 ,0))
class InGame(object):
def main():
game = GameState()
game.start_game()
while True:
#如果事件等于点击关闭, 窗口就关闭
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
pygame.display.update()
if __name__ == '__main__':
InGame.main()
上面那张图片, 就是代码中的backpic.png 运行之后显示
这样, 我们第一步绘制窗口就完成了。
下面, 我们想让他一边运行, 一边放音乐。
新建一个Music类, 用来播放音乐。
class Music(object):
def __init__(self):
#初始化音乐
pygame.mixer.init()
def bgm(self):
pygame.mixer.music.load("theme.ogg")
#播放音乐, -1循环播放
pygame.mixer.music.play(-1)
这样, 我们音乐类就写好了。在网上找个音乐,就能播放, 要是播放不了, 可能跟格式有关系, 我这MP3格式就放不了, 改成了OGG
再往代码中游戏部分插入
music = Music()
music.bgm()
就搞定了。
import pygame
background = pygame.image.load("backpic.png")
class GameState(object):
def __init__(self):
#初始化游戏
pygame.display.init()
#创建一个大小为871, 650的窗口
GameState.window = pygame.display.set_mode((871, 650))
#修改窗口标题
pygame.display.set_caption("Plant vs Zomb")
def start_game(self):
#开始游戏
screen = pygame.display.set_mode((871, 650))
#窗口显示背景图片
screen.blit(background, (0 ,0))
#音乐类
class Music(object):
def __init__(self):
#初始化音乐
pygame.mixer.init()
def bgm(self):
pygame.mixer.music.load("theme.ogg")
#播放音乐, -1循环播放
pygame.mixer.music.play(-1)
class InGame(object):
def main():
game = GameState()
game.start_game()
music = Music()
music.bgm()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
pygame.display.update()
if __name__ == '__main__':
InGame.main()
这样就能变成一个打开放bgm的植物大战僵尸图片了。