学生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()   # 开始执行游戏

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值