python——飞机大战游戏(下载模块,知识点,图片)

news2024/12/28 22:02:12

飞机大战——准备工作

这篇文章我们只有关于pygame模块的下载,和一些知识点,还有飞机大战我们需要用到的图片。下一篇文章我们进行代码的详细解析。

1.1安装pygame模块

方法一:

在pycharm中打开命令行下载,输入pip install pygame
如果这个方法不行的话,我们就用方法二,如下:

方法二

在终端中输入:pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple

1.2使用rect描述位置

rect是用于存储矩形坐标pygame对象,rect对象有一些虚拟属性,比如top、left、bottom、right这些是用来固定矩形的位置的,还有size、width、height,这些是描述矩形的大小,宽、高、分别是多少。
center为矩形的中心点,其实就是关于横纵坐标的二元组,因此又有centerx和centery两个属性。此外,还有x,y。

import pygame
pygame.init()
hero_rect = pygame.Rect(100,200,125,300)
#100:表示距离x轴原点的位置
#200:表示距离y轴原点的位置
#125:矩形的宽度
#300:矩形的长度
print("英雄机矩形的x={},y={}".format(hero_rect.x,hero_rect.y))
print("英雄机矩形的宽width={},高height={}".format(hero_rect.width,hero_rect.height))
print("英雄机矩形的中心centerx={}".format(hero_rect.centerx))
print("英雄机的底部bottom={}".format(hero_rect.bottom))
print("英雄机的左部left={}".format(hero_rect.left))
print("英雄机的右部right={}".format(hero_rect.right))
print("英雄机的大小".format(hero_rect.size))
pygame.quit()

运行结果:在这里插入图片描述

1.3以下是关于这个的代码的一些知识点

caption
用于设置窗口的标题(caption)

screen
变量表示游戏窗口或屏幕,用于显示游戏中的元素,如玩家、敌人、子弹等。通常,游戏中的所有元素都会在 screen 上进行绘制和显示。

blit
是一个用于在屏幕上绘制图像的方法。具体来说,blit 方法用于将一个图像绘制到另一个图像上,通常是将一个图像绘制到屏幕上。
screen.blit(source, dest)
screen 是表示游戏窗口或屏幕的Surface对象。
source 是要绘制的源图像(Surface对象)。
dest 是一个元组,表示源图像在屏幕上的位置,通常是一个坐标 (x, y)。

load
是一个用于加载图像和声音文件的函数。具体来说,load 函数通常与 image 或 mixer 模块一起使用,用于加载游戏中需要使用的图像和声音资源。
pygame.image.load(filename)
filename 是要加载的图像文件的路径。

get
当用户在 Entry 组件中输入文本后,可以使用 get() 方法来获取用户输入的文本内容。

Entry
是 tkinter 中用于创建单行文本输入框的组件类。
Entry 组件允许用户在其中输入文本,并且通常用于接收用户的输入数据。用户可以在 Entry 组件中输入文本,然后将其传递给程序进行处理。
在 tkinter 中,创建一个 Entry 组件通常需要以下步骤:
导入 tkinter 模块:import tkinter as tk
创建主窗口:root = tk.Tk()
创建 Entry 组件:input_entry = tk.Entry(root)
使用 grid 方法将 Entry 放置到窗口中的合适位置:input_entry.grid(row=0, column=0)

columnconfigure
是 tkinter 中用于配置列的方法,可以用来设置列的大小、权重、最小宽度等属性。
通过 columnconfigure 方法,可以对窗口或框架中的列进行配置,以实现更灵活的布局效果。该方法通常与 grid 方法一起使用,用于设置网格布局中各列的属性。
常见的用法是:
设置列的权重:可以使用 columnconfigure(index, weight=value) 来设置第 index 列的权重,权重值越大,该列在布局中所占的空间比例就越大。
设置列的最小宽度:可以使用 columnconfigure(index, minsize=value) 来设置第 index 列的最小宽度,确保列不会小于指定的宽度。
例如,root.columnconfigure(0, weight=1) 表示设置窗口 root 的第一列的权重为 1,使得该列在布局中会占据更多的空间。

sticky
是 tkinter 中 grid 方法的一个参数,用于指定组件在网格布局中的对齐方式。
当使用 grid 方法将组件放置到窗口的网格中时,可以通过 sticky 参数来控制组件在其所在的网格空间中的对齐方式。sticky 参数可以接受一个或多个方向参数,包括 N, S, E, W,分别表示北、南、东、西,可以组合使用这些参数来指定组件在网格中的对齐方式。
例如,input_entry.grid(row=0, column=0, sticky=“w”) 表示将文本输入框组件 input_entry 放置在第一行第一列的位置,并且左对齐(西对齐)。

grid
是 tkinter 中用于将组件放置到网格布局中的方法。通过 grid 方法,可以指定组件在窗口中的行和列位置,从而实现对组件的布局控制。
在 tkinter 中,通常使用 grid 方法来将组件放置在窗口的网格布局中,通过指定行号和列号来确定组件的位置。这样可以更精确地控制组件的摆放位置和布局。
例如,可以使用 input_entry.grid(row=0, column=0) 将文本输入框组件 input_entry 放置在第一行第一列的位置。通过不同的行号和列号组合,可以将多个组件放置在窗口的不同位置,实现灵活的界面布局。
grid 方法还可以接受其他参数,如 rowspan 和 columnspan,用于指定组件占据的行数和列数,以及 sticky 参数用于指定组件在网格中的对齐方式等。

config
是一个用于配置或修改组件属性的方法,通常用于对 tkinter 窗口应用程序中的各种组件(如标签、按钮、文本框等)进行属性设置。
在 tkinter 中,每个组件都有一系列可配置的属性,比如文本内容、字体、颜色、大小等。通过调用组件对象的 config 方法,可以修改这些属性的值,从而实现对组件外观和行为的定制。
例如,对于标签(Label)组件,可以使用 config 方法来设置标签的文本内容、字体、颜色等属性。类似地,对于按钮(Button)组件,也可以使用 config 方法来设置按钮的文本、命令等属性。
通过使用 config 方法,可以动态地改变组件的属性,实现界面的更新和交互效果。

colliderect()
是一个方法,用于检测两个矩形是否相交或重叠。如果两个矩形相交或重叠,则返回一个表示碰撞的矩形对象;如果没有碰撞,则返回一个空对象。

flag
是一个布尔类型的变量,用于表示碰撞是否发生。如果 colliderect() 方法返回的结果不是空对象(即有碰撞发生),则 flag 的值为 True;否则,flag 的值为 False。

1.4下面是一些关于飞机大战的图片

下面的图片我们按照上面的英文名字命名就可以了。
icon.png
icon.png

background.png
background.png
enemy2.png
enemy2.png
enemy2_hit.png
enemy2_hit.png
enemy2_down1.png
enemy2_down1.png
enemy2_down2.pngenemy2_down2.png
enemy2_down3.png
enemy2_down3.pngenemy2_down4.png
enemy2_down4.png
me1.png
me1.pngme2.png
me2.png
me_destroy_1.png
me_destroy_1.pngme_destroy_2.png
me_destroy_2.png
me_destroy_3.png
me_destroy_3.png
me_destroy_4.png
me_destroy_4.png

bullet1.png
bullet1.png
bullet2.png
bullet2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Axure设计美观友好的后台框架页

使用Axure设计后台框架页 优点介绍: **1、使用中继器灵活配置菜单项; 2、二级菜单面板跟随一级菜单位置显示; 3、菜单链接打开后,联动添加tab标签; 4、标签页与iframe内容联动,可关闭; 5、左侧…

linux 定位进程文件路径

有时候用top 打开任务管理器时知道某个任务的进程的存在&#xff0c;但不知道是哪个文件&#xff0c;只需两条指令只可定位进程的可执行文件路径 使用 ls -l /proc/<PID>/cwd 命令来查找该进程的当前工作目录。使用 cat /proc/<PID>/cmdline 命令来查看该进程的命…

富集分析不求人,零代码可视化GO/KEGG分析结果

01 爱基百客云平台小工具使用 首先&#xff0c;打开爱基百客官网&#xff1a;http://www.igenebook.com&#xff1b;点击菜单栏最右侧“云平台”按钮。 弹出云平台界面&#xff08;下图&#xff09;&#xff0c;输入账号、密码和验证码方可登录&#xff1b;进入云平台&#xf…

ThingsBoard服务端使用RPC通过网关给设备发送消息

一、概述 1、发送服务器端网关RPC 二、案例&#xff1a; 1、建立设备与网关之间的通讯 2、查看设备和网关是否在线状态啊 3、通过 仪表盘&#xff0c;创建设备A的模拟RPC调用的窗口链接 4、在客户端的网关设备上订阅RPC网关的主题信息 5、通过服务端的窗口&#xff0c;发…

JavaEE >> Spring(2)

前面已经介绍了 Spring 的基本使用以及创建&#xff0c;本文将介绍使用注解的方式实现对 Spring 更简单的存储对象和读取对象. 将对象存储到 Spring 中 创建 Spring 项目 前面已经做过详细步骤&#xff0c;此处不再赘述. 链接在此 Spring 基本使用及创建 pom.xml 和 Spring…

机器学习模型效果不好及其解决办法

当训练出来的机器学习模型效果不佳时&#xff0c;可能涉及多个方面的原因。为了改善模型的效果&#xff0c;需要系统地检查和分析问题的根源&#xff0c;并采取相应的措施进行优化。 一、数据问题 数据质量 检查数据是否干净、完整&#xff0c;是否存在噪声、异常值或缺失值。…

【后端】python2和python3的安装与配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、python是什么二、python环境的安装与配置Python 2的安装与配置Python 3的安装与配置注意事项 三、总结 前言 随着开发语言及人工智能工具的普及&#xff0…

C++ //练习 13.17 分别编写前三题中所描述的numbered和f,验证你是否正确预测了输出结果。

C Primer&#xff08;第5版&#xff09; 练习 13.17 练习 13.17 分别编写前三题中所描述的numbered和f&#xff0c;验证你是否正确预测了输出结果。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*************************…

git提交注释规范插件

1、前言 为什么要注重代码提交规范&#xff1f; 在团队协作开发时&#xff0c;每个人提交代码时都会写 commit message。 每个人都有自己的书写风格&#xff0c;翻看我们组的git log, 可以说是五花八门&#xff0c;十分不利于阅读和维护。 一般项目开发都是多分支共存&#x…

浅涉ROS世界中的坐标系及其他

声明&#xff1a;文中图片素材均采用了其他博主文章&#xff08;文末参考来源&#xff09;&#xff0c;如有侵权或不妥&#xff08;确有不妥和不安&#xff0c;奈何苦于佳图难觅&#xff09;&#xff0c;还望告知&#xff0c;立即删除&#xff01; 坐标系统 ROS中的…

影视后期特效合成:DaVinci Fusion Studio19 激活版

DaVinci Fusion Studio是一款功能强大的影视后期特效合成软件&#xff0c;可广泛应用于视觉效果、广播电视设计、动态图形设计、3D动画设计等领域。 如综合的绘图、动态掩蔽、遮片、图层叠加、字幕等工具&#xff0c;结合高效的粒子生成系统&#xff0c;通过它可以创建各种精细…

51单片机入门_江协科技_35~36_OB记录的自学笔记_AD与DA转换(XPT2046)

35. AD_DA 35.1. AD/DA介绍 •AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟-数字转换&#xff0c;将模拟信号转换为计算机可操作的数字信号 •DA&#xff08;Digital to Analog&#xff09;&#xff1a;数字-模拟转换&#xff0c;将计算机输出的数字信号转换…

【Word中如何对比文档修改前后的不同之处】

1、准备两个word文档&#xff08;一个是修改前文档&#xff0c;一个是修改后文档&#xff09; 2、双击打开两个文档&#xff0c;点击【审阅】-【比较】-选择修改前的文档和修改后的文档-【确定】&#xff0c;进入文档比较界面。 3、在比较结果文档中&#xff0c;可以查看修改前…

杰出贡献!51Sim助力ASAM新版本智驾标准发布

日前&#xff0c;ASAM&#xff08;德国自动化及测量系统标准协会&#xff09;正式发布了自动驾驶仿真场景标准OpenSCENARIO XML V1.3.0和OpenSCENARIO DSL V2.1.0&#xff0c;这两项标准是自OpenSCENARIO标准版本V1及V2拆分为两个独立标准以来首次正式发布。 作为ASAM会员单位…

stripe.js踩坑日记

stripe.js踩坑日记 先附上代码【选择支付方式并唤起对应支付后重定向到支付结果页面】 先安装依赖包 npm install stripe/stripe-js代码【vue3语法】 <template><div class"stripe-pay-ment-box"><div id"payment-element"></div…

shopify二次开发在首页调用最新的博客文章

在section分区里面新建一个 article.json {"type": "header","name": "Group name","sections": {"blog-posts": {"type": "blog-posts","disabled": true,"settings":…

移动零 ----双指针

题目链接 题目: 分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 思路: 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块首先让cur 0; dest 0;cur 遍历数组, 如果cur 0, 那么cur…

基于springboot+vue+Mysql的漫画网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

dubbo本地调试说明

1、连接dubbo服务 telnet ip 端口号比如&#xff1a;dubbo的端口你配置的是20980连接本地&#xff1a; telnet localhost 20980连接之后&#xff0c;输入ls进入dubbo命令行&#xff0c;然后invoke接口进行调试了 2、传入单独参数实例 dubbo>invoke com.kaishustory.userx.…

Maven基础篇6

Idea环境中资源上传与下载 具体问题本地仓库如何与私服打交道&#xff1b; 本地仓库向私服上传文件&#xff0c;上传的文件位置在哪里&#xff1f; 访问私服配置相关信息&#xff1a;用户名密码&#xff1b; 下载东西&#xff0c;需要的各种信息&#xff0c;需要的仓库组的…