Python学习-飞机大战(1)
飞机大战(1)
此阶段完成了飞机的移动 面向过程
面向过程(只写到移动)
导入库
1. 创建游戏窗口,用于显示游戏内容
2. 读取充当背景的图片
3. 读取飞机图片 创建飞机角色
4. 循环:
a) 背景,飞机在坐标的位置显示
b) 更新
c) 判断键盘是否按下
i. 键盘控制
主函数入口
面向对象
导入库
1、 定义飞机的类
定义飞机的方法
i. 初始x,y,image 变量
ii. 参数screen
iii. 飞机图片
iv. 存储发射出去的子弹对象的引用
b) Display
i. 显示飞机
ii. 遍历存储的子弹列表bullet_list[]
1. 子弹显示并移动
c) move_left
d) move_right
e) fire
2、 定义键盘控制的方法
a) 上下左右
b) 空格 发射子弹
3、 主程序
a) 创建游戏窗口,用于显示游戏内容
b) 读取充当背景的图片
c) 创建飞机角色
d) 循环
i. 背景图,飞机在坐标上显示
ii. 更新
4、主函数入口
源代码来自尚学堂 相信会越来越好
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名: AirplaneWar.py # _author_ ='黑桃' import pygame from pygame.locals import * import timepath='G:\\feiji\\' class HeroPlane(object): def __init__(self, screen_temp): self.x = 210 self.y = 700 self.screen = screen_temp self.image = pygame.image.load(path+"hero1.png") self.bullet_list = [] # 存储发射出去的子弹对象引用 def display(self): self.screen.blit(self.image, (self.x, self.y))#显示飞机 for bullet in self.bullet_list:#显示飞机的同时 显示子弹发射的状态 显示子弹 显示子弹移动 bullet.display()bullet.move()def move_left(self): self.x -= 5 def move_right(self): self.x += 5 def fire(self): self.bullet_list.append(Bullet(self.screen, self.x, self.y))class Bullet(object): def __init__(self, screen_temp, x, y): self.x = x + 40 self.y = y - 20 self.screen = screen_temp self.image = pygame.image.load(path+"bullet.png")def display(self): self.screen.blit(self.image, (self.x, self.y))def move(self): self.y -= 5 def key_control(hero_temp): # 获取事件,比如按键等 for event in pygame.event.get(): # 判断是否是点击了退出按钮 if event.type == QUIT: print("exit") exit() # 判断是否是按下了键 elif event.type == KEYDOWN: # 检测按键是否是a或者left if event.key == K_a or event.key == K_LEFT: print('left') hero_temp.move_left() # 检测按键是否是d或者right elif event.key == K_d or event.key == K_RIGHT: print('right') hero_temp.move_right() # 检测按键是否是空格键 elif event.key == K_SPACE: print('space') hero_temp.fire()def main(): # 1. 创建窗口 screen = pygame.display.set_mode((480, 852), 0, 16)# 2. 创建一个背景图片 background = pygame.image.load(path+"background.png")# 3. 创建一个飞机对象 hero = HeroPlane(screen)while True: screen.blit(background, (0, 0))hero.display()pygame.display.update() key_control(hero)time.sleep(0.01)if __name__ == "__main__": main()
Python学习-飞机大战(1)相关推荐
- python学习-飞机大战
一.pygame正确安装 1.安装:pip install pygame 2.验证安装:python -m pygame.examples.aliens:安装ok即会出现如下图所示动画 二.使用pyg ...
- 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...
[实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...
- python写飞机大战游戏_python实现飞机大战游戏
飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累.实现出来,成就感还是满满的),如图所示: 完整代码如下: 1.工 ...
- python实现飞机大战游戏_python实现飞机大战小游戏
本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下 初学Python,写了一个简单的Python小游戏. 师出bilibili某前辈 pycharm自带了第三方库pyga ...
- 飞机大战游戏python_基于Python的飞机大战游戏
基于 Python 的飞机大战游戏 杨铠 [期刊名称] <电脑迷> [年 ( 卷 ), 期] 2017(000)021 [摘要] 我们每天都享受到科技带来的好处 , 了解计算机编程对每个人 ...
- 【python】飞机大战小游戏练习
飞机大战小游戏练习 一.前提准备 二.制作步骤 1.库的导入与初始化 2.窗口操作 3.键盘按键监听相关操作 4.添加游戏背景 5.加载玩家飞机 6.获取玩家飞机矩阵 三.完整代码编写 游戏背景类编写 ...
- python的飞机大战
python的飞机大战的完整代码 alien.py import pygame from pygame.sprite import Sprite class Alien(Sprite):"& ...
- python实现飞机大战游戏
python实现飞机大战小游戏(含源码+视频资源) 导语: 正文: 1.开发工具 2.环境搭建 3.效果如下 Step1:定义精灵类 Step2:实现游戏主循环 Step3:制作简易的游戏开始和结束界 ...
- python制作飞机大战游戏准备工作相关知识点
python制作飞机大战游戏准备工作相关知识点 1.初始化背景 `import pygame` : 导入pygame模块 `pygame.init()` : 导入并初始化所有 `pygame` 模块, ...
最新文章
- Dirichlet前缀和及其拓展
- 我们编写的C代码是怎样跑起来的?
- C++ | 蓝桥杯2021年第十二届卡片问题(源代码:C语言/C++/Python)
- 加快mysql导入、导出速度
- python list相关知识
- Atitit 读取文件并处理目录1.1. 3. 以二进制读取 fread取代fgets 11.2. 4.将整个文件读入到一个字符串的方法 file_get_contents() 11.3.
- ISO14001认证用处有哪些?
- 《全球科技通史》吴军老师-读书摘录
- FMS3.5的安装使用
- Mybatis 报错Mapper method ‘xxx‘ has an unsupported return type
- 电脑可以上QQ但是打不开网页
- Android保存图片到系统图库并通知系统相册刷新
- 数字化转型的本质(10个关键词)
- java写一个结婚的方法_一份结婚流程 作为你结婚的Project管理不错哦
- 使用Aspose.Pdf修改PDF文件中的表格字段
- 打印当前python文件出错行
- PHP反序列化详解(二)——PHP魔术方法与PHP反序列化漏洞
- 企业数据中心“云化”转型解决方案
- vue的proxyTable的地址代理和重定向,配合nginx的地址代理问题
- C++的errorC2039和C2679的解决
热门文章
- c盘所有的html文件全删,c盘怎么清理到最干净 电脑c盘满了 怎么强制清理啊
- win10系统扩大C盘大小
- 浏览器在线打开PPTX乱码解决方案
- php ajax联动下拉列表,PHP和Ajax实现二级联动下拉菜单(代码、详细注释)
- 2022年计算机一级考试photoshop应用复习题及答案
- does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-l
- vue3 + TS +vite
- 【UR #2】跳蚤公路
- 自定义采购订单批导(BAPI)
- 10秒内插入亿量级数据,我滴妈,真牛逼...