飞机大战(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)相关推荐

  1. python学习-飞机大战

    一.pygame正确安装 1.安装:pip install pygame 2.验证安装:python -m pygame.examples.aliens:安装ok即会出现如下图所示动画 二.使用pyg ...

  2. 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...

    [实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...

  3. python写飞机大战游戏_python实现飞机大战游戏

    飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累.实现出来,成就感还是满满的),如图所示: 完整代码如下: 1.工 ...

  4. python实现飞机大战游戏_python实现飞机大战小游戏

    本文实例为大家分享了python实现飞机大战的具体代码,供大家参考,具体内容如下 初学Python,写了一个简单的Python小游戏. 师出bilibili某前辈 pycharm自带了第三方库pyga ...

  5. 飞机大战游戏python_基于Python的飞机大战游戏

    基于 Python 的飞机大战游戏 杨铠 [期刊名称] <电脑迷> [年 ( 卷 ), 期] 2017(000)021 [摘要] 我们每天都享受到科技带来的好处 , 了解计算机编程对每个人 ...

  6. 【python】飞机大战小游戏练习

    飞机大战小游戏练习 一.前提准备 二.制作步骤 1.库的导入与初始化 2.窗口操作 3.键盘按键监听相关操作 4.添加游戏背景 5.加载玩家飞机 6.获取玩家飞机矩阵 三.完整代码编写 游戏背景类编写 ...

  7. python的飞机大战

    python的飞机大战的完整代码 alien.py import pygame from pygame.sprite import Sprite class Alien(Sprite):"& ...

  8. python实现飞机大战游戏

    python实现飞机大战小游戏(含源码+视频资源) 导语: 正文: 1.开发工具 2.环境搭建 3.效果如下 Step1:定义精灵类 Step2:实现游戏主循环 Step3:制作简易的游戏开始和结束界 ...

  9. python制作飞机大战游戏准备工作相关知识点

    python制作飞机大战游戏准备工作相关知识点 1.初始化背景 `import pygame` : 导入pygame模块 `pygame.init()` : 导入并初始化所有 `pygame` 模块, ...

最新文章

  1. Dirichlet前缀和及其拓展
  2. 我们编写的C代码是怎样跑起来的?
  3. C++ | 蓝桥杯2021年第十二届卡片问题(源代码:C语言/C++/Python)
  4. 加快mysql导入、导出速度
  5. python list相关知识
  6. Atitit 读取文件并处理目录1.1. 3. 以二进制读取 fread取代fgets 11.2. 4.将整个文件读入到一个字符串的方法 file_get_contents() 11.3.
  7. ISO14001认证用处有哪些?
  8. 《全球科技通史》吴军老师-读书摘录
  9. FMS3.5的安装使用
  10. Mybatis 报错Mapper method ‘xxx‘ has an unsupported return type
  11. 电脑可以上QQ但是打不开网页
  12. Android保存图片到系统图库并通知系统相册刷新
  13. 数字化转型的本质(10个关键词)
  14. java写一个结婚的方法_一份结婚流程 作为你结婚的Project管理不错哦
  15. 使用Aspose.Pdf修改PDF文件中的表格字段
  16. 打印当前python文件出错行
  17. PHP反序列化详解(二)——PHP魔术方法与PHP反序列化漏洞
  18. 企业数据中心“云化”转型解决方案
  19. vue的proxyTable的地址代理和重定向,配合nginx的地址代理问题
  20. C++的errorC2039和C2679的解决

热门文章

  1. c盘所有的html文件全删,c盘怎么清理到最干净 电脑c盘满了 怎么强制清理啊
  2. win10系统扩大C盘大小
  3. 浏览器在线打开PPTX乱码解决方案
  4. php ajax联动下拉列表,PHP和Ajax实现二级联动下拉菜单(代码、详细注释)
  5. 2022年计算机一级考试photoshop应用复习题及答案
  6. does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-l
  7. vue3 + TS +vite
  8. 【UR #2】跳蚤公路
  9. 自定义采购订单批导(BAPI)
  10. 10秒内插入亿量级数据,我滴妈,真牛逼...