首页 > Python资料 博客日记
少帅下飞机(Python版本)基于pygame
2024-10-25 04:00:04Python资料围观36次
文章少帅下飞机(Python版本)基于pygame分享给大家,欢迎收藏Python资料网,专注分享技术知识
最近在短视频平台上的少帅下飞机很火看到了很多java、C语言等好多版本。
今天给大家带来一个python版本。基于pygame库的 程序运行效果如下:
环境安装:python3.x版本 pygame库
安装pygame库:
pip install pygame
我的代码实现部分如下:
1. 初始化
首先,我们需要初始化Pygame,并创建一个窗口:
import pygame
import sys
# 初始化
pygame.init()
screen = pygame.display.set_mode((800, 800))
clock = pygame.time.Clock()
pygame.display.set_caption("张学良下飞机") # 更改窗口标题
2. 加载图片
下面是我用自己用的三张图片大家根据自己的图片来更改 :
飞机 少帅 卫兵1 卫兵2
# 加载并调整图片尺寸
plane_img = pygame.transform.scale(pygame.image.load('img/plane.jpg'), (128, 128))
shaoshaui_img = pygame.transform.scale(pygame.image.load('img/shaoshuai.png'), (64, 64))
weibing1_img = pygame.transform.scale(pygame.image.load('img/weibing1.png'), (64, 64))
weibing2_img = pygame.transform.scale(pygame.image.load('img/weibing2.png'), (64, 64))
3. 定义变量
# 定义位置
plane_x = 0
plane_y = 100
guard_y = 300
shao_visible = False
shao_y = 200 # 少帅的初始高度
falling = False
fall_speed = 25 # 每秒下降25个像素
falling_timer = 0 # 下落计时
4. 循环代码
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 更新飞机位置
plane_x += 1
if plane_x > 800:
plane_x = -1000000000 # 重新从屏幕左端出现
5. 下落逻辑
if not shao_visible and plane_x >= 500:
shao_visible = True # 显示少帅
pygame.time.set_timer(pygame.USEREVENT, 1000) # 设置定时器,1秒后触发
6. 使用blit绘制所有图片
screen.fill((255, 255, 255)) # 清屏
screen.blit(plane_img, (plane_x, plane_y))
screen.blit(weibing1_img, (400, guard_y)) # 卫兵1
screen.blit(weibing2_img, (600, guard_y)) # 卫兵2
if shao_visible:
screen.blit(shaoshaui_img, (500, shao_y)) # 掉落的位置
pygame.display.flip()
clock.tick(60) # 控制帧率
完整代码如下:
import pygame
import sys
# 初始化
pygame.init()
screen = pygame.display.set_mode((800, 800))
clock = pygame.time.Clock()
pygame.display.set_caption("张学良下飞机") # 更改窗口标题
# 加载并调整图片尺寸
plane_img = pygame.transform.scale(pygame.image.load('img/plane.jpg'), (128, 128))
shaoshaui_img = pygame.transform.scale(pygame.image.load('img/shaoshuai.png'), (64, 64))
weibing1_img = pygame.transform.scale(pygame.image.load('img/weibing1.png'), (64, 64))
weibing2_img = pygame.transform.scale(pygame.image.load('img/weibing2.png'), (64, 64))
# 定义位置
plane_x = 0
plane_y = 100
guard_y = 300
shao_visible = False
shao_y = 200 # 少帅的初始高度
falling = False
fall_speed = 25 # 每秒下降25个像素
falling_timer = 0 # 下落计时
# 游戏循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 更新飞机位置
plane_x += 1
if plane_x > 800:
plane_x = -1000000000 # 飞机飞出屏幕后,设置一个很小的值,使其重新从屏幕左端出现
# 检查飞机是否到达 x = 500
if not shao_visible and plane_x >= 500:
shao_visible = True # 显示少帅
shao_y = 200 # 设置少帅初始位置
pygame.time.set_timer(pygame.USEREVENT, 1000) # 设置定时器,1秒后触发
falling_timer = 0 # 重置计时器
# 更新少帅的Y位置
if shao_visible and shao_y < 301 :
shao_y += 2 # 少帅向下移动
# 处理定时器事件
if event.type == pygame.USEREVENT:
falling = True # 开始同时下落
pygame.time.set_timer(pygame.USEREVENT, 0) # 停止定时器
# 同时下落
if falling:
if guard_y < 800: # 800 是最终位置
guard_y += fall_speed / 60 # 按帧率计算下落速度
if shao_y < 800:
shao_y += fall_speed / 60
# 绘制
screen.fill((255, 255, 255)) # 清屏
screen.blit(plane_img, (plane_x, plane_y))
screen.blit(weibing1_img, (400, guard_y)) # 卫兵1
screen.blit(weibing2_img, (600, guard_y)) # 卫兵2
if shao_visible:
screen.blit(shaoshaui_img, (500, shao_y)) # 掉落的位置
pygame.display.flip()
clock.tick(60)
欢迎大家在评论区分享你们的想法和建议,期待你的参与!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj