学习编程是很快乐的事情。当我们自己开发出一套时下流行的游戏时,这满满的成就感比玩儿游戏本身高出了不知道会有多少倍。
接下来一段时间我们就python从0开始学习怎么开发 flappy brid 游戏。在学习之前,我们不需要有任何编程基础,只要会打开电脑上网即可。通过本系列课程的学习,同学们可以掌握python编程基础。能够自己动手开发一些自己喜欢的游戏。
在开始编程之前,让我们再看一下这个游戏怎么运行的吧。
看过flappy brid怎么玩儿之后,我们一起动手实现它。同学们按照下面的步骤完成本节课的学习。
安装python及IDE可以参考这个课程:
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738150500472fd5785c194ebea336061163a8a974000
1. 怎么制作一个游戏我们玩儿的游戏。从外观上看,包括:游戏背景、游戏角色、游戏声音、游戏动作几个模块。总结起来就是,我们的游戏角色在游戏背景上执行指定的动作,发出指定的声音。
用python编写游戏也是一样。我们首先设计好游戏大纲,把游戏大纲用python语言实现。然后填充好视觉图片和声音特效,我们的游戏就开发完成了。
2.pygame介绍使用python开发游戏时,我们经常引入pygame库。什么是“库”呢?python库就是别人写好的一些完成特定功能的代码。就像我们手机安装的有各种各样的App,python也有各种各样的库。pygame就是python开发游戏常用的库。
我们为什么要使用python库呢?一些想计算器等简单的程序,我们只需要自己写代码就可以完成整个程序的开发。但是像我们玩儿的手机游戏、用的微信、QQ等程序都有比较复杂的功能,如果整个程序都有我们来开发。那会是几十万行代码的工作量,由于代码行数多,还容易引起bug。建筑工人盖楼时,我们不会在工地上自己做钢板瓷砖,而是用其他团队给我们生产好的瓷砖直接使用。我们写程序时也会经常使用其他团队开发的‘库’来简化我们的程序,通过引入库,我们可以和世界上任何一个程序员一起合作,协同开发。
pygame作为python的游戏库,具有 简单易用、功能完整、只需要少量代码即可完成游戏渲染等特点。是我们用python开发游戏的利器。
3.pygame安装要想给python安装库,我们经常使用pip工具作为辅助。pip的安装方法如下。
1:用浏览器打开
https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz 压缩包下载后解压到指定文件夹
2: 用命令行进入解压后的文件夹,运行 python setup.py install 命令,完成pip的安装
pip安装完成后,我们就可以使用 python -m pip install -U pygame --user 命令安装 pygame了。
4.pygame-helloworldpygame库安装好后,我们就可以用python开发游戏了。我们打开pycharm,新建一个python文件,将下面的代码粘贴到文件中,我们的第一个游戏就制作完成了!虽然有些简单,但是也像模像样。
import sys, pygame
pygame.init()
width = 320
height = 240
speed = [2, 2]
screen = pygame.display.set_mode([width, height])
ball = pygame.image.load("../assets/sprites/ball.gif")
ball_rect = ball.get_rect()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
ball_rect = ball_rect.move(speed)
print(ball_rect.left, ball_rect.right, ball_rect.top, ball_rect.bottom)
if ball_rect.left < 0 or ball_rect.right > width:
speed[0] = -speed[0]
if ball_rect.top < 0 or ball_rect.bottom > height:
speed[1] = -speed[1]
screen.fill([0, 0, 0])
screen.blit(ball, ball_rect)
pygame.display.flip()
我们发现代码是由一行行英语句子来组成的,如果我们认识这些单词,阅读这些代码就相当简单了。编程大量的依靠数学和英语,我们一定要在学校里把数学和英语掌握好哦。
5. pygame核心模块介绍cursors |
加载光标 |
display |
访问显示设备 |
draw |
绘制形状、线和点 |
event |
管理事件 |
image |
加载和存储图片 |
key |
读取键盘按键 |
mouse |
鼠标 |
sndarray |
操作声音数据 |
time |
管理时间和帧信息 |
transform |
缩放和移动图像 |
接下来,我们就来开发FlappyBird游戏。这节课,我们先完成游戏背景、小鸟起飞的部分。
首先我们还是来看一下代码,再新建一个python文件,将下面的代码粘贴到文件中,点击运行。我们发现游戏背景和小鸟就出现了。当我们按下键盘的空格键,小鸟还会向上飞。
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))
background = pygame.image.load('../assets/sprites/background-day.png').convert()
player = pygame.image.load('../assets/sprites/redbird-upflap.png').convert_alpha()
playerX = int(screenWidth * 0.2)
playerY = int((screenHeight - player.get_height()) / 2)
while True:
screen.blit(background, (0, 0))
screen.blit(player, (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
pygame.display.update()
fpsClock.tick(60)
好了,这节课就讲完了。本节我们首先复习了什么是python。什么是python的库。介绍了pygame,用pygame写了我们的第一个游戏。接下来,我们一起完成Flappy Brid游戏吧。