Python战机
基础版
import pygame
import random# 设置游戏屏幕大小
screen_width = 480
screen_height = 600# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)# 初始化pygame
pygame.init()# 创建游戏窗口
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("雷霆战机")# 加载背景音乐
pygame.mixer.music.load("background.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(-1)# 加载玩家飞机图片
player_img = pygame.image.load("player.png")
player_rect = player_img.get_rect()
player_rect.centerx = screen_width // 2
player_rect.bottom = screen_height - 10# 创建子弹精灵组
bullet_group = pygame.sprite.Group()# 设置游戏时钟
clock = pygame.time.Clock()# 初始化分数
score = 0# 游戏主循环
running = True
while running:# 设置帧率clock.tick(60)# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:bullet = pygame.Rect(player_rect.centerx, player_rect.top - 10, 5, 10)bullet_group.add(bullet)# 检测子弹是否击中敌机for bullet in bullet_group:bullet.y -= 10if bullet.y < 0:bullet_group.remove(bullet)else:pygame.draw.rect(screen, WHITE, bullet)# 绘制玩家飞机screen.blit(player_img, player_rect)# 更新屏幕pygame.display.flip()# 清空屏幕screen.fill(BLACK)
完善版
import pygame
import random# 设置游戏屏幕大小
screen_width = 480
screen_height = 600# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)# 初始化pygame
pygame.init()# 创建游戏窗口
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("雷霆战机")# 加载背景音乐
pygame.mixer.music.load("background.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(-1)# 加载玩家飞机图片
player_img = pygame.image.load("player.png")
player_rect = player_img.get_rect()
player_rect.centerx = screen_width // 2
player_rect.bottom = screen_height - 10# 加载敌机图片
enemy_img = pygame.image.load("enemy.png")# 创建子弹精灵组
bullet_group = pygame.sprite.Group()# 创建敌机精灵组
enemy_group = pygame.sprite.Group()# 设置游戏时钟
clock = pygame.time.Clock()# 初始化分数
score = 0# 显示分数的函数
def show_score():font = pygame.font.Font(None, 36)score_text = font.render(f"Score: {score}", True, WHITE)screen.blit(score_text, (10, 10))# 显示游戏结束的函数
def show_game_over():font = pygame.font.Font(None, 48)game_over_text = font.render("Game Over", True, RED)screen.blit(game_over_text, (screen_width//2 - 100, screen_height//2 - 50))# 游戏主循环
running = True
while running:# 设置帧率clock.tick(60)# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_SPACE:bullet = pygame.Rect(player_rect.centerx, player_rect.top - 10, 5, 10)bullet_group.add(bullet)# 检测子弹是否击中敌机for bullet in bullet_group:bullet.y -= 10if bullet.y < 0:bullet_group.remove(bullet)else:pygame.draw.rect(screen, WHITE, bullet)# 绘制玩家飞机screen.blit(player_img, player_rect)# 生成敌机if random.randint(0, 100) < 3:enemy_rect = enemy_img.get_rect()enemy_rect.x = random.randint(0, screen_width - enemy_rect.width)enemy_rect.y = -enemy_rect.heightenemy_group.add(enemy_rect)# 移动敌机for enemy in enemy_group:enemy.y += 5if enemy.y > screen_height:enemy_group.remove(enemy)# 绘制敌机screen.blit(enemy_img, enemy_rect)# 检测敌机和玩家飞机是否碰撞if pygame.sprite.spritecollide(player_rect, enemy_group, True):running = False# 检测子弹和敌机是否碰撞if pygame.sprite.groupcollide(bullet_group, enemy_group, True, True):score += 1# 显示分数show_score()# 更新屏幕pygame.display.flip()# 清空屏幕screen.fill(BLACK)# 显示游戏结束界面
show_game_over()# 更新屏幕
pygame.display.flip()# 等待2秒钟后退出游戏
pygame.time.wait(2000)# 退出游戏
pygame.quit()
相关文章:
Python战机
基础版 import pygame import random# 设置游戏屏幕大小 screen_width 480 screen_height 600# 定义颜色 WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)# 初始化pygame pygame.init()# 创建游戏窗口 screen pygame.display.set_mode((scre…...
外包做了5个月,技术退步一大半了。。。
先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...
设计模式的艺术P1基础—2.2 类与类的UML图示
设计模式的艺术P1基础—2.2 类与类的UML图示 在UML 2.0的13种图形中,类图是使用频率最高的两种UML图之一(另一种是用于需求建模的用例图),它用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解…...
PCB 的正片、负片那些事儿
最近在 PCB 打样的过程中遇到了 PCB 的正片层和负片层的问题,故以此记录一下。 问题产生的原因是在投产 PCB 时发现生产稿的 Gerber 图形和 PCB 设计有区别,如图所示,左边为某 PCB 内层,右边为对应层生产稿的 Gerber 图形&#x…...
QT应用篇:QT解析与生成XML文件的四种方式
四种常见的解析 XML 的方式(DOM、SAX、以及基于 Qt 的 XmlStreamReader)各有自己的优缺点,适合不同的应用场景。 DOM 适合小型且结构简单的 XML 文件,需要频繁修改和操作整个文档结构的情况。SAX 适合大型 XML 文件,以及只需读取不需要修改的情况。基于 Qt 的 XmlStreamRe…...
Android 正圆
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"wrap_content"android:layout_height"wrap_content"android:padding&…...
C#,入门教程(13)——字符(char)及字符串(string)的基础知识
上一篇: C#,入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一!!!!! C#语言实…...
Tracert 与 Ping 程序设计与实现(2024)
1.题目描述 了解 Tracert 程序的实现原理,并调试通过。然后参考 Tracert 程序和计算机网络教材 4.4.2 节, 计算机网络 课程设计指导书 2 编写一个 Ping 程序,并能测试本局域网的所有机器是否在线,运行界面如下图所示的 QuickPing …...
浅谈接口自动化测试
前言 自动化测试,算是近几年比较火热的一个话题,当然,更是软件测试未来的一个发展趋势。未来,功能测试等非核心的测试工作,都将被外包。 想要在软件测试这个行业继续前行,就必须拥有核心竞争力࿰…...
Hyperledger Fabric 核心概念与组件
要理解超级账本 Fabric 的设计,首先要掌握其最基本的核心概念与组件,如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能,就可以准确把握 Fabric 的底层运行原理,深入理解其在架构上的设计初衷。知其然,进…...
【C语言题解】 | 101. 对称二叉树
101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树,此题与上一题,即 100. 相同的树 这个题有异曲同工之妙,故此题可借鉴上题。 我们先传入需要判断二叉树的根节点,通过isSameTree()…...
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#) Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法:工业相机掉线重连测试演示图…...
[Vulnhub靶机] DriftingBlues: 5
[Vulnhub靶机] DriftingBlues: 5靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova 靶机地址:192.168.67.24 攻击机地址:192.168.67.3 一、信息收集 …...
26 数字验证
效果演示 实现了一个简单的数字密码输入表单,用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码,用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…...
echarts - xAxis.type设置time时该如何使用formatter的分级模板
echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴,适用于连续数据。 此时x轴数据是从零开始,有数据大小的区分。 【注意】 因为xAxis.data是为category服务的,所以xAxis.data里面设置的数据无效。 二、type: ‘ca…...
【代码随想录】刷题笔记Day47
前言 又过了个愉快的周末~大组会终于不用开了,理论上已经可以回家了!但是我多留学校几天吧,回家实在太无聊了,也没太多学习的氛围 198. 打家劫舍 - 力扣(LeetCode) dp[i]含义 考虑下标i(包括…...
6.1 截图工具HyperSnap6简介
图片是组成多媒体作品的基本元素之一,利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口,然后在画笔或者其它的图片处理软件中进行剪…...
stable diffusion 人物高级提示词(二)衣物、身材
一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙: 英文解释Formal Dress正式礼服,通常用于正式…...
外包做了1个月,技术退步一大半了。。。
先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...
docker-compose常用命令及.yaml配置模板
1、docker-compose常用命令: docker-compose -f mysql-docker-compose.yaml up -d docker-compose -f mysql-docker-compose.yaml downdocker-compose的常用命令包括: docker-compose up:启动并运行Compose文件中的服务。 docker-compose st…...
LFM2.5-1.2B-Thinking-GGUF开源可部署:自主可控轻量模型替代方案深度评测
LFM2.5-1.2B-Thinking-GGUF开源可部署:自主可控轻量模型替代方案深度评测 1. 模型概述 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为低资源环境优化设计。该模型采用GGUF格式存储,配合llama.cpp运行时,能…...
GitHub Trending 每日精选 - 2026-03-27
GitHub Trending 每日精选 - 2026-03-27 📈 今日概览 今天是 2026-03-27,GitHub Trending 榜单上有哪些值得关注的开源项目?注:此博客为自动化生成,系统会在每日运行时获取最新 Trending 数据并填充具体项目信息。&…...
bilibili_live_stream_code:开源直播推流工具 解锁自定义直播新体验
bilibili_live_stream_code:开源直播推流工具 解锁自定义直播新体验 【免费下载链接】bilibili_live_stream_code 用于在准备直播时获取第三方推流码,以便可以绕开哔哩哔哩直播姬,直接在如OBS等软件中进行直播,软件同时提供定义直…...
SAP资产会计数据迁移:除了AS91,你还需要检查这些关键配置(传输日期、抵销科目详解)
SAP资产会计数据迁移:AS91之外的7个关键配置陷阱与解决方案 当你在凌晨三点盯着屏幕上不平的资产折旧凭证时,AS91的简单操作指南显然已经不够用了。作为经历过数十个SAP上线项目的顾问,我发现90%的资产数据迁移问题都源于那些容易被忽略的后台…...
老设备焕新:OCLP更新系统全解析
老设备焕新:OCLP更新系统全解析 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 随着苹果对旧款Mac设备的系统支持逐渐终止,许多仍能正常工作的老设…...
北京大学钟亦武老师招收博士生、实习生
点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达冲刺今年春招、秋招和实习!大家快加入2026年AI校招群!赠送今年最大的80元优惠券,大家扫码下方二维码即可加群学习!北京大学智能学院介绍&#x…...
PyTorch 2.8镜像部署教程:适配550.90.07驱动的GPU监控与显存优化技巧
PyTorch 2.8镜像部署教程:适配550.90.07驱动的GPU监控与显存优化技巧 1. 镜像概述与环境准备 PyTorch 2.8深度学习镜像专为RTX 4090D 24GB显卡和CUDA 12.4环境深度优化,预装了完整的深度学习工具链。这个镜像已经过严格测试,确保在550.90.0…...
Comsol 中微环谐振腔的环形波导耦合:波束包络与波动光学模块对比
Comsol微环谐振腔,环形波导耦和。 对比波束包络和波动光学两个不同模块。在光学领域,微环谐振腔因其独特的光学特性在众多应用中发挥着关键作用,比如光滤波、光传感等。而 Comsol 作为一款强大的多物理场仿真软件,为我们深入研究微…...
vLLM 5.0.4 实战:从参数解析到批量推理的性能调优指南
1. vLLM 5.0.4核心参数解析与实战配置 初次接触vLLM时,最让人头疼的就是那一长串参数列表。我在实际项目中使用Meta-Llama-3.1-8B-Instruct模型时,就曾因为参数配置不当导致显存爆炸。下面分享几个关键参数的实战经验: LLM类参数中的max_mode…...
s2-pro效果展示:会议纪要转语音+重点语句强调式播报实录
s2-pro效果展示:会议纪要转语音重点语句强调式播报实录 1. 专业语音合成新体验 s2-pro作为Fish Audio开源的专业级语音合成模型镜像,正在重新定义文本转语音的标准。不同于常见的聊天式语音工具,它专注于提供高质量的语音合成服务ÿ…...
