python飞机大战简书_飞机大战(pygame)开发实录一
飞机大战,算是面向对象的程序语言入门必修程序,但大多教程只是点到为止,跳过了很多实际开发会遇到的问题,自然也错过了很多不错的经验。该系列文章针对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)开发实录一相关推荐
- python工厂模式 简书_工厂
思考题 public void printMenu() { PancakeHouseMenu pancakeHouseMenu = new PancakeHouseMenu(); ArrayList ...
- python工厂模式 简书_工厂模式
什么是工厂设计模式? 定义一个用于创建对象的接口,让子类决定将哪一个类实例化,专门用来生产对象.在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如 ...
- 小甲鱼python课后题简书_【Python爬虫】-笨办法学 Python 习题01-10
一.作业内容: 01.将下面的内容写到一个文件中,取名为ex1.py.这个命名方式很重要,Python文件最好以.py结尾. 1 print "Hello World!" 2 pr ...
- python 串口助手 简书_[pyqt5-pyserial实现一个串口调试工具记录]
遇到的问题 1. 程序结构 创建一个主窗口的类:在里面主要实现窗口UI的绘制,并定义一些槽函数接口 创建主框架类:该类继承自主窗口类,并实现主窗口类中的槽函数,在该类中创建串口接收线程 串口接收线程类 ...
- python进行数据分析 简书_《利用python进行数据分析》读书笔记1
读取json内容: import json path='路径\文件名.txt' records=[json.loads(line) for line in open(path)] #records为由 ...
- python工厂模式 简书_[Python设计模式] 01 - 简单工厂模式
设计模式的目的是让代码易维护.易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的. 简单工厂模式又叫静态工厂方法模式,工厂模式家族中最简单的一种模式.这个模式的基本工作方式: 通 ...
- [译] 12步轻松搞定python装饰器 - 简书
[译] 12步轻松搞定python装饰器 - 简书 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编 ...
- Python爬虫获取简书的用户、文章、评论、图片等数据,并存入数据库
Python爬虫获取简书的用户.文章.评论.图片等数据,并存入数据库 爬虫定义:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维 ...
- python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北
前言 最开始,使用 Sublime Text 编码,后来用 Vim 混合 PyCharm 写 Python. 前几天,Github 上的 Spacemacs 已经成功的突破一万 Star, 听说几个我 ...
最新文章
- android释放acitity内存,Android 内存泄漏分析与解决方法
- 计算机视觉 | 哥大读博五年总结
- Java输出数组中最长递增子序列的代码
- 全球及中国数字内容产业运行现状调研与盈利前景分析报告2022年
- elasticsearch狂神说笔记_神级学习笔记!别再说不会Elasticsearch了,这位架构师都整理好了...
- 502 Proxy Error The proxy server received an invalid response from an upstream server
- [JavaWeb-CSS]CSS概述
- js设置select列表中特定项为选中状态
- 编写超级可读代码的15个最佳实践
- 频率和波特率_实例详解 | 变频器端子启停与通信设定频率(附程序)
- 类似excel实现文本中带数字的值进行规律填充[前提:字符串中数字对数相等](-)
- 8月23号,来上海整整一年
- Resnet_50网络结构图
- 开始菜单单如何打开计算机程序,什么是开始菜单
- 解析g代码c语言程序
- Nova Conductor服务
- Android的gps定位
- 通过wifi对手机进行adb连接debug调试 adb connect ip_address:5555
- CAD画图 ——基础和直线
- JavaScript 数组塌陷