当前位置: 首页 > news >正文

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个月,技术退步一大半了。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

设计模式的艺术P1基础—2.2 类与类的UML图示

设计模式的艺术P1基础—2.2 类与类的UML图示 在UML 2.0的13种图形中&#xff0c;类图是使用频率最高的两种UML图之一&#xff08;另一种是用于需求建模的用例图&#xff09;&#xff0c;它用于描述系统中所包含的类以及它们之间的相互关系&#xff0c;帮助人们简化对系统的理解…...

PCB 的正片、负片那些事儿

最近在 PCB 打样的过程中遇到了 PCB 的正片层和负片层的问题&#xff0c;故以此记录一下。 问题产生的原因是在投产 PCB 时发现生产稿的 Gerber 图形和 PCB 设计有区别&#xff0c;如图所示&#xff0c;左边为某 PCB 内层&#xff0c;右边为对应层生产稿的 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)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(12)——数组及数组使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123918227 字符串的使用与操作是必需掌握得滚瓜烂熟的编程技能之一&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; C#语言实…...

Tracert 与 Ping 程序设计与实现(2024)

1.题目描述 了解 Tracert 程序的实现原理&#xff0c;并调试通过。然后参考 Tracert 程序和计算机网络教材 4.4.2 节&#xff0c; 计算机网络 课程设计指导书 2 编写一个 Ping 程序&#xff0c;并能测试本局域网的所有机器是否在线&#xff0c;运行界面如下图所示的 QuickPing …...

浅谈接口自动化测试

前言 自动化测试&#xff0c;算是近几年比较火热的一个话题&#xff0c;当然&#xff0c;更是软件测试未来的一个发展趋势。未来&#xff0c;功能测试等非核心的测试工作&#xff0c;都将被外包。 想要在软件测试这个行业继续前行&#xff0c;就必须拥有核心竞争力&#xff0…...

Hyperledger Fabric 核心概念与组件

要理解超级账本 Fabric 的设计&#xff0c;首先要掌握其最基本的核心概念与组件&#xff0c;如节点、交易、排序、共识、通道等。 弄清楚这些核心组件的功能&#xff0c;就可以准确把握 Fabric 的底层运行原理&#xff0c;深入理解其在架构上的设计初衷。知其然&#xff0c;进…...

【C语言题解】 | 101. 对称二叉树

101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树&#xff0c;此题与上一题&#xff0c;即 100. 相同的树 这个题有异曲同工之妙&#xff0c;故此题可借鉴上题。 我们先传入需要判断二叉树的根节点&#xff0c;通过isSameTree()…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的掉线自动重连的技术背景通过PnP事件函数检查Baumer工业相机是否掉线在NEOAPI SDK里实现相机掉线重连方法&#xff1a;工业相机掉线重连测试演示图…...

[Vulnhub靶机] DriftingBlues: 5

[Vulnhub靶机] DriftingBlues: 5靶机渗透思路及方法&#xff08;个人分享&#xff09; 靶机下载地址&#xff1a; https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova 靶机地址&#xff1a;192.168.67.24 攻击机地址&#xff1a;192.168.67.3 一、信息收集 …...

26 数字验证

效果演示 实现了一个简单的数字密码输入表单&#xff0c;用户需要输入一个4位数字密码来验证身份。表单包含一个标题、描述、输入字段、两个按钮和一个关闭按钮。输入字段是一个4位数字密码&#xff0c;用户需要在每个输入框中输入数字来输入密码。两个按钮分别是“验证”和“清…...

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴&#xff0c;适用于连续数据。 此时x轴数据是从零开始&#xff0c;有数据大小的区分。 【注意】 因为xAxis.data是为category服务的&#xff0c;所以xAxis.data里面设置的数据无效。 二、type: ‘ca…...

【代码随想录】刷题笔记Day47

前言 又过了个愉快的周末~大组会终于不用开了&#xff0c;理论上已经可以回家了&#xff01;但是我多留学校几天吧&#xff0c;回家实在太无聊了&#xff0c;也没太多学习的氛围 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; dp[i]含义 考虑下标i&#xff08;包括…...

6.1 截图工具HyperSnap6简介

图片是组成多媒体作品的基本元素之一&#xff0c;利用图片可以增强多媒体作品的亲和力和说说服力。截取图片最简单的方法是直接按下键盘上的“PrintScreen”键截取整个屏幕或按下“AltPrintScreen”组合键截取当前活动窗口&#xff0c;然后在画笔或者其它的图片处理软件中进行剪…...

stable diffusion 人物高级提示词(二)衣物、身材

一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙&#xff1a; 英文解释Formal Dress正式礼服&#xff0c;通常用于正式…...

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

docker-compose常用命令及.yaml配置模板

1、docker-compose常用命令&#xff1a; docker-compose -f mysql-docker-compose.yaml up -d docker-compose -f mysql-docker-compose.yaml downdocker-compose的常用命令包括&#xff1a; docker-compose up&#xff1a;启动并运行Compose文件中的服务。 docker-compose st…...

基于Next.js与Prisma构建宠物社区应用:全栈开发实战解析

1. 项目概述&#xff1a;一个为宠物爱好者打造的社区应用最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的开源项目&#xff0c;叫jtsang4/happypaw。光看名字&#xff0c;“Happy Paw”&#xff08;快乐的爪子&#xff09;&#xff0c;就能猜到这八成是和宠物相关的。点进…...

基于Agent架构的轻量级自托管部署工具Ship实战指南

1. 项目概述&#xff1a;一个为开发者而生的轻量级部署工具最近在折腾一个前后端分离的小项目&#xff0c;从本地开发到服务器部署&#xff0c;中间那套流程真是让人头大。代码提交、构建、测试、再到服务器上拉取、重启服务&#xff0c;一套组合拳下来&#xff0c;少说也得十几…...

2026-05-11 全国各地响应最快的 BT Tracker 服务器(联通版)

数据来源&#xff1a;https://bt.me88.top 序号Tracker 服务器地域网络响应(毫秒)1udp://60.172.236.18:6969/announce安徽芜湖联通102udp://118.196.100.63:6969/announce安徽芜湖联通113http://211.75.205.187:6969/announce安徽芜湖联通384http://211.75.205.188:80/announ…...

计算机视觉工程师必须掌握的颜色空间选型指南

1. 项目概述&#xff1a;为什么计算机视觉工程师必须懂颜色理论你有没有遇到过这样的情况&#xff1a;模型在训练集上准确率98%&#xff0c;一到测试集就掉到72%&#xff1f;调试半天发现&#xff0c;不是数据标注错了&#xff0c;也不是网络结构有问题&#xff0c;而是训练图像…...

从仿真到PCB:基于74LS系列芯片的十字路口交通灯系统实战设计

1. 项目背景与设计目标 十字路口交通灯控制系统是数字电路课程的经典实践项目。记得我第一次接触这个课题时&#xff0c;既兴奋又忐忑——兴奋的是终于能把课本上的与非门、触发器应用到真实场景&#xff0c;忐忑的是从仿真到实物可能存在的各种"坑"。这个基于74LS系…...

统一内存引擎:异构计算时代的内存管理革命

1. 项目概述&#xff1a;统一内存引擎的诞生背景与核心价值最近在分布式系统和数据库领域&#xff0c;一个名为chenxi-lee/unified-memory-engine的项目引起了我的注意。乍一看这个标题&#xff0c;可能会觉得它又是一个内存池或者缓存组件&#xff0c;但深入研究后你会发现&am…...

Go语言屏幕自动化工具Rizzler:基于计算机视觉的RPA实践指南

1. 项目概述&#xff1a;一个能“读懂”你屏幕的智能助手最近在折腾一个挺有意思的开源项目&#xff0c;叫ghuntley/rizzler。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你对自动化、RPA&#xff08;机器人流程自动化&#xff09;或者屏幕交互脚本感兴趣…...

全方位降本增效,Captain AI重构OZON运营成本结构

当前OZON市场竞争日趋激烈&#xff0c;人力、物流、广告、库存等各项运营成本持续攀升&#xff0c;利润空间不断压缩&#xff0c;“降本”与“增效”成为商家生存发展的核心命题。不同于单一工具仅能优化某一项成本&#xff0c;Captain AI立足OZON商家全运营场景&#xff0c;以…...

基于微信小程序的民宿短租系统(30292)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

【Sora 2视频集成终极指南】:ChatGPT原生调用、API对接、帧级控制与多模态工作流落地实录(2024官方SDK首曝)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT Sora 2视频集成功能详解 ChatGPT Sora 2 并非官方发布的模型名称&#xff0c;而是社区对 OpenAI 视频生成能力演进方向的一种泛称。当前&#xff08;截至 2024 年中&#xff09;&#xff0c;O…...