Python新手开发的飞机大战

article/2025/3/5 5:01:26
飞机大战import pygame
import random
import math  # 数学模块# 初始化界面
pygame.init()
# 设置窗口大小
windows = pygame.display.set_mode((800, 600))
# 设置窗口标题
pygame.display.set_caption("小赵同学")
# 引入图片 logo
icon = pygame.image.load('logo.jpg')
pygame.display.set_icon(icon)# 4.游戏获取背景
bgcolor = pygame.image.load('bj.png')
# 5.设置玩家飞机
playerimg = pygame.image.load('fj.png')
X = 350  # 设置玩家X轴
Y = 480  # 设置玩家Y轴
# 停止移动就可以将palyerStep改为0。控制一个变量来指定飞机指定移动
playerStep = 0# 添加背景音乐
pygame.mixer.music.load('bj.mp3')
pygame.mixer.music.play(-1)
# 添加射中的音效
# bao_music = pygame.mixer.Sound('bj.mp3')# 分数
score = 0
# 添加字体和大小
font = pygame.font.Font('freesansbold.ttf', 32)# 字体类
def show_score():# 显示的文字text = f"Score:{score}"# 渲染然后显示 显示text True表示24位的字score_render = font.render(text, True, (0, 255, 0))# 指定字体放到那个位置windows.blit(score_render, (10, 10))# 游戏结束的变量
over = False
over_font = pygame.font.Font('freesansbold.ttf', 64)# 结束的提示语
def check_over():if over:text = "Game Over"render = font.render(text, True, (255, 0, 0))windows.blit(render, (320, 200))# 8.添加敌人.# 11.添加多个敌人
number_enemy = 6# 敌人类
class Enemy:def __init__(self):#self.img = pygame.image.load('enemy.png')self.x = random.randint(200, 600)  # 随机产生Xself.y = random.randint(50, 250)  # 随机产生Yself.step = random.randint(2, 4)  # 随机产生速度# 当被射中时恢复位置def reset(self):self.x = random.randint(200, 600)self.y = random.randint(50, 180)def distance(bx, by, ex, ey):a = bx - exb = by - eyreturn math.sqrt(a * a + b * b)  # 开根号# 保存所有的敌人
enemis = []
for i in range(number_enemy):  # 每次循环都都在class Enemy中过一边,所以随机产生一个敌人的参数并且保存到列表中enemis.append(Enemy())# 显示敌人并且实现敌人的移动下沉
def enemy():  # 循环保存敌人的列表,每个敌人都过在这个for循环里被限制了移动的轨迹global overfor e in enemis:windows.blit(e.img, (e.x, e.y))e.x += e.stepif e.x > 750 or e.x < 0:  # 判断敌人是否到了边界e.step *= -1  # 敌人碰到界面往返e.y += 40  # 设置敌人往下沉# 判断敌人的位置如果到达指定的地方则游戏结束if e.y > 436:over = Trueprint("游戏结束啦")enemis.clear()# 设置飞机及飞机移动范围的函数 == 飞机类型
def fiji_type():  # 设置飞机的坐标和飞机X Y轴最大的移动位置global X, Y# 5. 设置飞机windows.blit(playerimg, (X, Y))# 6.飞机移动X += plagerStep# 预防飞机出界if X > 680:X = 680if X < 0:X = 0# 子弹的类
class Bullet:def __init__(self):self.img = pygame.image.load('bullet.png')self.x = X + 55  # 设置子弹的X轴self.y = Y + 5  # 子弹出现在玩家的上方self.step = 2  # 子弹移动的速度# 击中敌人def hit(self):global scorefor e in enemis:if distance(self.x, self.y, e.x, e.y) < 30:# 射中了bullets.remove(self)e.reset()  # 重置敌人# 没击中加10分score += 10bullets = []  # 保存现有的子弹# 显示子弹移动
def show_bullets():for b in bullets:windows.blit(b.img, (b.x, b.y))b.hit()  # 查看是否击中了敌人b.y -= b.step  # 往上移动# 判断子弹是否出了界面if b.y < 0:bullets.remove(b)# 3.游戏主循环
running = True
while running:# 4.背景# 每个循环是画一张画组成的# 画出来bgcolorwindows.blit(bgcolor, (0, 0))# 调用这个字体show_score()# event.get操作事件for event in pygame.event.get():# 判断操作类型是不是QUITif event.type == pygame.QUIT:# 如果程序为False就会停止则关闭running = False# 7.控制飞机的移动# 通过控制键盘的事件来控制(playerStep值)飞机的移动if event.type == pygame.KEYDOWN:# 判断按下键盘右键,按下则移动if event.key == pygame.K_RIGHT:plagerStep = 3# 判断按下左键elif event.key == pygame.K_LEFT:plagerStep = -3# 判断按下空格健的反应elif event.key == pygame.K_SPACE:# 创建一个子弹b = Bullet()bullets.append(b)# 判断松来按键停止,if event.type == pygame.KEYUP:plagerStep = 0# 调用飞机的类型的函数fiji_type()# 调用敌人这个函数enemy()show_bullets()  # 显示子弹# 游戏结束语check_over()# 刷新更新数据pygame.display.update()
# global 设置全局变量''' 游戏结构
1.设置窗口大小
2.背景图
3.显示飞机
4.移动飞机
5.控制出界
6.获取键盘事件
7.显示敌人
8.敌人移动
9.下沉和随机位置
10.显示多个敌人
11.响应空格键
12.添加子弹
13.发射子弹
14.射中检测之距离
15.射中检测
16.添加音效 
17.添加并显示分数
18.游戏结束
19.结束提示'''

代码有点乱新手开发理解一下!!!

有问题还请大佬们评论出来 ,感谢感谢!!!


http://chatgpt.dhexx.cn/article/4PQvisTF.shtml

相关文章

【Python游戏开发】百行Python代码开发出飞机大战小游戏,原来Python可以这么强大

大家好&#xff0c;今天给大家介绍一个小项目&#xff0c;只用一百行代码就可以开发出的游戏。 安装pygame 下载对应python版本的pygame 运行以下命令 创建Pygame窗口及响应用户输入 新建一个文件夹alien_invasion&#xff0c;并在文件夹中新建alien_invasion.py文件&#x…

终极PK | Python相较于Java的优势在哪里?

首先为避免引战&#xff0c;我要强调&#xff0c;“无论是Python还是Java都是目前主流的编程语言&#xff0c;没有好坏之分&#xff0c;有的只是应用场景不同&#xff0c;Python和Java都是世界上最好的语言&#xff01;” 接下来我们从语言本身、应用场景以及流行趋势等多个方…

【编程项目开源】仿微信飞机大战(Python版)

背景 前面已输出多个系列&#xff1a; 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 《N种编程语言做个应用市场(appstore)》 《N种编程语…

Java太难,我选python?一个工具,带你开启新世界大门

前不久&#xff0c;4月份十大编程语言排行榜新鲜出炉。据TIOBE公布的数据来看&#xff0c;较上个月&#xff0c;TOP5基本没什么变化。Java稳居第一&#xff0c;随后是C、python、C、C#。 可是&#xff0c;有研究表明&#xff0c;十大难学编程语言中&#xff0c;Java排第3&…

用python编写飞机大战

博主介绍&#xff1a;是一名刚来到CSDN的小萌新 飞机大战 效果显示代码实现领取代码资源 效果显示 代码实现 领取代码资源 效果显示 代码实现 # -*- coding: utf-8 -*- import pygame # 导入pygame库 from pygame.locals import * # 导入pygame库中的一些常量 …

python云计算有哪些岗位,华为python教程下载

本篇文章给大家谈谈华为python语言通用编程规范&#xff0c;以及python云计算有哪些岗位&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 摘要&#xff1a;以 相反的顺序反转和处理字符串可能是编程中的一项常见任务。Python 提供了一组工具和技术&#xff0c…

java和python哪个功能更好,java和python哪个更有前景

大家好&#xff0c;本文将围绕java和python哪个更有发展前景展开说明&#xff0c;java和python哪个功能更好是一个很多人都想弄明白的事情&#xff0c;想搞清楚java和python哪个更有前景需要先了解以下几个事情。 java语言和python语言发展前景哪个好? 【导语】众所周知&#…

用Python写了一个网易云,太强了(附源码)

前言 今天的项目太强了&#xff0c;用 Python 整出一个网易云来&#xff0c;实现音乐自由&#xff01; 环境 Python3.6.8 PyCharm 依赖包 PyQt5&#xff1a;用于图形界面的开发 shelve&#xff1a;用于序列化对象 requests&#xff1a;爬取数据 功能展示 根据关键词&…

java和python哪个更有前景,java和python哪个有前途

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;java和python哪个更有前景&#xff0c;java和python哪个有前途&#xff0c;今天让我们一起来看看吧&#xff01; 前言 如今开发编程行业的发展迅猛&#xff0c;it技术的更新迭代十分快速&#xff0c;社会发展的方方面面…

【Python】Java工程师学Python之一分钟了解Python

文章目录 为何要学习PythonPython概述编译和运行过程Python主要应用的领域Python的特点Python优点与Java的区别最后 为何要学习Python 鲁迅先生说的好&#xff0c;不爱学习的开发不是好开发&#xff08;帮我压下先生的棺材板~&#xff09;&#xff0c;开个玩笑&#xff0c;主要…

Python---实现飞机大战源码

plane_main.py import pygame from plane_sprites import *class PlaneGame(object):"""飞机大战主游戏"""def __init__(self):print("游戏初始化")# 1.创建游戏的窗口self.screen pygame.display.set_mode(SCREEN_RECT.size)# 2.创…

Python项目——飞机大战!

文章目录 一、项目介绍——飞机大战实战步骤确认模块 —— pygame安装 pygame验证安装 二、pygame 快速入门项目准备1. 使用 pygame 创建图形窗口小节目标1.1 游戏的初始化和退出1.2 理解游戏中的坐标系案例演练 1.3 创建游戏主窗口1.4 简单的游戏循环 2. 理解 **图像** 并实现…

python和java哪个更有前景,python和java哪个更有前途

大家好&#xff0c;小编为大家解答python和java哪个好学,零基础的问题。很多人还不知道python和java哪个更容易入门&#xff0c;现在让我们一起来看看吧&#xff01; 进入编程行业是很多人的梦想&#xff0c;现在越来越多的人都想要通过培训的方式进入IT行业中&#xff0c;但是…

Python项目实战之《飞机大战游戏》

目录 一、Pygame库包简介 二、Pygame安装 三、项目开发思路 3.1前言 3.2飞机大战开发步骤 一、Pygame库包简介 Pygame是一个基于python的游戏开发库&#xff0c;它提供一系列的工具和接口&#xff0c;使开发人员能够轻松的创建各种类型的游戏&#xff0c;包括2D游戏和简单…

Java调用Python语言及第三方Python库

#pic_center 400x 系列文章&#xff1a; 文章目录 1、导入依赖 <!--Python&Java--><dependency><groupId>org.python</groupId><artifactId>jython-standalone</artifactId><version>2.7.2</version></dependency>…

Python 代码托管到码云平台,原来这么简单

什么是代码托管&#xff1f;代码托管又有什么好处&#xff1f; 场景1&#xff1a;我有2个电脑&#xff0c;公司一台&#xff0c;家里一台。我想在两台电脑上都进行同步开发。这时候我只要git push/pull一下就能够同步了&#xff0c;不再需要用U盘拷来拷去 场景2&#xff1a;我…

Python游戏开发-超级海盗!!!

开发环境配置 安装python环境后&#xff0c;下载pygame模块&#xff0c;使用如下命令 pip install pygame 注&#xff1a;该项目使用了一些新特性&#xff0c;使用3.10以上的版本 游戏项目介绍 游戏分为两个模块&#xff0c;分别是编辑模块和关卡模块&#xff0c;在编辑模…

chatgpt赋能python:Python编译成Java字节码:一个全新的可能性

Python编译成Java字节码&#xff1a;一个全新的可能性 Python作为一种高级编程语言&#xff0c;有其独特的优点和特点&#xff0c;被广泛应用于各个领域。然而&#xff0c;随着Python在企业级应用中的广泛应用&#xff0c;性能和安全等方面的问题也越来越凸显出来。这时&#…

鲲鹏法(一)python环境搭建

简单总结一下python的开发环境&#xff08;偏科学计算一些&#xff09;&#xff0c;Pycharm等之后再补了 python环境搭建 一.Python二.IPython三.Jupyter1.Jupyder QtConsole(了解即可)2.Jupyder Notebook3.Jupyder Lab4.单元类型5.编辑单元6.Markdown单元7.输出显示8.nbconver…

【预测模型-ELM预测】基于原子搜索算法优化极限学习机预测matlab代码

​1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于原子搜索算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多,训练过程中容易产生过拟合现象.该方法运用原子搜索算法对极限…