飞机大战,算是面向对象的程序语言入门必修程序,但大多教程只是点到为止,跳过了很多实际开发会遇到的问题,自然也错过了很多不错的经验。该系列文章针对python的pygame包,详细讲解了飞机大战的开发。
目录提纲:
一. 游戏动画基本原理,图片加载和显示的方法
二. 控制图像的移动
三. 对象化编程特点介绍,基类创建
四. 背景类及飞机基类
五. 玩家飞机类的创建及其控制方法
六. 敌机、补给包、Boss的创建及控制
七. 碰撞检测原理和实现方法
八. 背景和音效
九. 游戏暂停、战斗信息、游戏开始确认,以及敌机刷新控制。
十. 主函数流程解析
游戏动画显示原理
游戏动态显示基础原理,就是快速绘制静态的图片,就像下面的这个动态图。
动画原理
游戏显示原理
比如游戏中飞机往上移动,也就是显示屏快速的切换这样的图片。
程序源码及资源文件
链接:https://pan.baidu.com/s/1qz3m3JuptLTsIpF1R0-WgQ
提取码:w4vx
文件包含源码资源文件,图片、声音、字体等等。
编写环境:
pygame 1.9.6
Python 3.7.3
IDE PyCharm 2019.1
pygame图片加载和显示过程
import pygame
# 创建一个窗口
screen = pygame.display.set_mode((480, 852), 0, 32)
# 读取背景图片
Image_background = pygame.image.load("./res/background.png")
# 读取飞机的图片
Image_hero = pygame.image.load("./res/hero1.png")
# 把图片贴到screen对象中
screen.blit(Image_background, (0,0))
screen.blit(Image_hero, (200,500))
# 把绘制好的图像,显示到屏幕中
pygame.display.update()
运行效果
剪报
图像显示过程,就像剪报栏:
1、我们会先找一张大点的纸 (程序中是加载了一张背景图)
2、然后在纸上贴上我们的剪报(程序中是添加飞机、子弹、敌机等图片)
3、最后把纸贴到剪报栏 (程序调用
pygame.display.update()
将图像输出到显示器)