玩游戏学编程系列-课程2

上节课我们学习了怎么使用pygame做一个简单的动画,还使用pygame做了flappy brid的第一个画面。这节课我们学习怎么让小鸟煽动翅膀动起来,怎么给游戏加背景音乐。

在进入本节编程之前,我们先看看动画是怎么制作的。

https://www.bilibili.com/video/av17828118?spm_id_from=333.338.__bofqi.12

上面视频演示了动画的制作过程。我们首先将一帧帧定格图片画好,然后快速的将图片迭代替换,由于我们眼镜的视觉停留,动画就形成了。

了解完动画原理之后,我们就用程序实现让小鸟煽动翅膀的效果。先上本节课代码

import sys
import pygame
from pygame.locals import *

screenWidth = 288
screenHeight = 512

pygame.init()
pygame.display.set_caption('Flappy Bird')

fpsClock = pygame.time.Clock()
screen = pygame.display.set_mode((screenWidth, screenHeight))

playerImageList = ['../assets/sprites/redbird-upflap.png',
                  '../assets/sprites/redbird-midflap.png',
                  '../assets/sprites/redbird-downflap.png', ]

background = pygame.image.load('../assets/sprites/background-day.png').convert()

playerList = [pygame.image.load(playerImageList[0]).convert_alpha(),
             pygame.image.load(playerImageList[1]).convert_alpha(),
             pygame.image.load(playerImageList[2]).convert_alpha()]

wing_sounds = pygame.mixer.Sound('../assets/audio/wing.ogg')

playerX = int(screenWidth * 0.2)
playerY = int((screenHeight - playerList[0].get_height()) / 2)

playerIndex = 0
while True:
screen.blit(background, (0, 0))

playerIndex = (playerIndex + 1) % 3
   screen.blit(playerList[playerIndex], (playerX, playerY))

for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN and event.key == K_SPACE:
playerY = playerY - 20
           wing_sounds.play()

pygame.display.update()
fpsClock.tick(60)


相比上节课,我们的代码多了这样几行:

playerList = [pygame.image.load(playerImageList[0]).convert_alpha(),
             pygame.image.load(playerImageList[1]).convert_alpha(),
             pygame.image.load(playerImageList[2]).convert_alpha()]

playerIndex = (playerIndex + 1) % 3
screen.blit(playerList[playerIndex], (playerX, playerY))


我们把小鸟的图片从原来的一张图片(单个字符串)改为了playerList三张图片(集合)。在while循环中,我们增加了一个playerIndex变量,这个变量的作用是在每次循环渲染小鸟角色时从playerList 取对应坐标的图片。这样在我们的游戏运行过程中,小鸟就可以煽动翅膀了。

接下来,我们加上翅膀煽动的声音。看代码:

wing_sounds = pygame.mixer.Sound('../assets/audio/wing.ogg')


if event.type == KEYDOWN and event.key == K_SPACE:
playerY = playerY - 20
   wing_sounds.play()


我们来看这段代码,意思是讲音乐加载到我们的程序里。每当空格键点击时,我们让计算机播放煽动翅膀的音乐。

这样我们的小鸟就可以煽动翅膀,发出声音了。下节课,我们学习怎么让我们的游戏世界动起来。




你可能感兴趣的:(玩游戏学编程系列-课程2)