飞机大战,算是面向对象的程序语言入门必修程序,但大多教程只是点到为止,跳过了很多实际开发会遇到的问题,自然也错过了很多不错的经验。该系列文章针对python的pygame包,详细讲解了飞机大战的开发。

目录提纲:

一. 游戏动画基本原理,图片加载和显示的方法

二. 控制图像的移动

三. 对象化编程特点介绍,基类创建

四. 背景类及飞机基类

五. 玩家飞机类的创建及其控制方法

六. 敌机、补给包、Boss的创建及控制

七. 碰撞检测原理和实现方法

八. 背景和音效

九. 游戏暂停、战斗信息、游戏开始确认,以及敌机刷新控制。

十. 主函数流程解析

游戏动画显示原理

游戏动态显示基础原理,就是快速绘制静态的图片,就像下面的这个动态图。

动画原理

游戏显示原理

比如游戏中飞机往上移动,也就是显示屏快速的切换这样的图片。

编写环境:

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() 将图像输出到显示器)

本篇主要介绍游戏动画基本原理,图片加载和显示的方法,下一篇会介绍图片移动、键盘控制的方法。

python飞机大战简书_飞机大战(pygame)开发实录一相关推荐

  1. python工厂模式 简书_工厂

    思考题 public void printMenu() { PancakeHouseMenu pancakeHouseMenu = new PancakeHouseMenu(); ArrayList ...

  2. python工厂模式 简书_工厂模式

    什么是工厂设计模式? 定义一个用于创建对象的接口,让子类决定将哪一个类实例化,专门用来生产对象.在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如 ...

  3. 小甲鱼python课后题简书_【Python爬虫】-笨办法学 Python 习题01-10

    一.作业内容: 01.将下面的内容写到一个文件中,取名为ex1.py.这个命名方式很重要,Python文件最好以.py结尾. 1 print "Hello World!" 2 pr ...

  4. python 串口助手 简书_[pyqt5-pyserial实现一个串口调试工具记录]

    遇到的问题 1. 程序结构 创建一个主窗口的类:在里面主要实现窗口UI的绘制,并定义一些槽函数接口 创建主框架类:该类继承自主窗口类,并实现主窗口类中的槽函数,在该类中创建串口接收线程 串口接收线程类 ...

  5. python进行数据分析 简书_《利用python进行数据分析》读书笔记1

    读取json内容: import json path='路径\文件名.txt' records=[json.loads(line) for line in open(path)] #records为由 ...

  6. python工厂模式 简书_[Python设计模式] 01 - 简单工厂模式

    设计模式的目的是让代码易维护.易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的. 简单工厂模式又叫静态工厂方法模式,工厂模式家族中最简单的一种模式.这个模式的基本工作方式: 通 ...

  7. [译] 12步轻松搞定python装饰器 - 简书

    [译] 12步轻松搞定python装饰器 - 简书 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编 ...

  8. Python爬虫获取简书的用户、文章、评论、图片等数据,并存入数据库

    Python爬虫获取简书的用户.文章.评论.图片等数据,并存入数据库 爬虫定义:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维 ...

  9. python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北

    前言 最开始,使用 Sublime Text 编码,后来用 Vim 混合 PyCharm 写 Python. 前几天,Github 上的 Spacemacs 已经成功的突破一万 Star, 听说几个我 ...

最新文章

  1. android释放acitity内存,Android 内存泄漏分析与解决方法
  2. 计算机视觉 | 哥大读博五年总结
  3. Java输出数组中最长递增子序列的代码
  4. 全球及中国数字内容产业运行现状调研与盈利前景分析报告2022年
  5. elasticsearch狂神说笔记_神级学习笔记!别再说不会Elasticsearch了,这位架构师都整理好了...
  6. 502 Proxy Error The proxy server received an invalid response from an upstream server
  7. [JavaWeb-CSS]CSS概述
  8. js设置select列表中特定项为选中状态
  9. 编写超级可读代码的15个最佳实践
  10. 频率和波特率_实例详解 | 变频器端子启停与通信设定频率(附程序)
  11. 类似excel实现文本中带数字的值进行规律填充[前提:字符串中数字对数相等](-)
  12. 8月23号,来上海整整一年
  13. Resnet_50网络结构图
  14. 开始菜单单如何打开计算机程序,什么是开始菜单
  15. 解析g代码c语言程序
  16. Nova Conductor服务
  17. Android的gps定位
  18. 通过wifi对手机进行adb连接debug调试 adb connect ip_address:5555
  19. CAD画图 ——基础和直线
  20. JavaScript 数组塌陷

热门文章

  1. 如何解决移动硬盘打不开的问题
  2. <selectKey>标签的作用
  3. 申请苹果企业开发者账号过程之记录
  4. 使用PyCharm运行.sh文件
  5. 什么是AOP,AOP的底层实现原理
  6. VueX的mutations、actions
  7. 两类数学归纳法及斐波那契通项的证明
  8. android findbugs官方文档,Android代码质量 FindBugs 规则
  9. LncACTdb 3.0:肿瘤ceRNA相作和个性化网络数据库
  10. Struts2 拦截器技术笔记