• 学生python编程----飞机训练


    # _*_ coding: UTF-8 _*_
    # 开发团队: 信息化未来
    # 开发人员: Administrator
    # 开发时间:2022/8/28 20:15
    # 文件名称: 飞机大战.py
    # 开发工具: PyCharm
    
    import pgzrun  # 导入游戏库
    import random  # 导入随机库
    WIDTH = 350   # 设置窗口的宽度
    HEIGHT = 600  # 设置窗口的高度
    
    background = Actor('background')  # 导入背景图片
    plane = Actor('plane')  # 导入飞机图片
    plane.x = 50           # 设置飞机的x坐标
    plane.y = HEIGHT/2     # 设置飞机的y坐标
    bar_up = Actor('bar_up')    # 导入障碍物上半部分图片
    bar_up.x = 300              # 设置障碍物上半部分的x坐标
    bar_up.y = 0           # 设置障碍物上半部分的y坐标
    bar_down = Actor('bar_down')    # 导入障碍物下半部分图片
    bar_down.x = 300                # 设置障碍物下半部分的x坐标
    bar_down.y = 600             # 设置障碍物下半部分的y坐标
    score = 0     # 游戏得分
    speed = 1     # 游戏速度,即障碍物向左移动的速度
    
    def draw():   # 绘制模块,每帧重复执行
        background.draw()  # 绘制背景
        bar_up.draw()         # 绘制障碍物上半部分
        bar_down.draw()         # 绘制障碍物下半部分
        plane.draw()        # 绘制飞机
        screen.draw.text(str(score), (30, 30),
                         fontsize=50, color='green')
    
    def update():  # 更新模块,每帧重复操作
        global score,speed
        plane.y = plane.y + 2  # 飞机y坐标增加,即缓慢下落
        bar_up.x = bar_up.x - speed   # 障碍物上半部分缓慢向左移动
        bar_down.x = bar_down.x - speed   # 障碍物下半部分缓慢向左移动
        # 当障碍物移动到最左边时,可以让其在右边重新出现
        if bar_up.x < 0:
            bar_up.x = WIDTH
            bar_down.x = WIDTH
            bar_up.y = random.randint(-200, 200)  # 障碍物上半部分上下随机出现
            bar_down.y = 600 + bar_up.y   # 上、下部分的障碍物中间空挡大小固定
            score = score + 1  # 得分加1
            if (score % 5 == 0): # 如果得分增加了5分,就让游戏速度增加
                speed = speed + 1
    
        # 如果飞机碰到障碍物上半部分或下半部分,游戏失败
        if plane.colliderect(bar_up) or plane.colliderect(bar_down) or plane.y < 0 or plane.y > HEIGHT:
            print('游戏失败')
            # 把得分清零、速度设为1,飞机、障碍物的位置重新归位
            score = 0
            speed = 1
            plane.x = 50            # 设置飞机的x坐标
            plane.y = HEIGHT/2      # 设置飞机的y坐标
            bar_up.x = WIDTH       # 设置障碍物上半部分的x坐标
            bar_up.y = 0           # 设置障碍物上半部分的y坐标
            bar_down.x = WIDTH     # 设置障碍物下半部分的x坐标
            bar_down.y = 600       # 设置障碍物下半部分的y坐标
    
    def on_mouse_down():  # 当鼠标点击时运行
        plane.y = plane.y - 100  # 飞机y坐标减少,即上升一段距离
    
    pgzrun.go()   # 开始执行游戏

     

  • 相关阅读:
    大模型应用开发技术:Multi-Agent框架流程、源码及案例实战(二)
    Spring整合MyBatis导致一级缓存失效问题
    Linux基础篇
    记录Centos7.9 安装mongodb 6.0 过程遇到的坑和解决办法
    KafKa 开启 SASL 验证
    Linux学习-02-Linux的安装
    三季报开启消费电子增长新纪元?看蓝思科技如何落子
    PDO 与 MySQLi:PHP 数据库 API 之战
    在CentOS上安装Docker引擎
    【论文阅读】通过3D和2D网络的交叉示教实现稀疏标注的3D医学图像分割(CVPR2023)
  • 原文地址:https://blog.csdn.net/fqfq123456/article/details/126573778