飞机大战——准备工作
这篇文章我们只有关于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
background.png
enemy2.png
enemy2_hit.png
enemy2_down1.png
enemy2_down2.png
enemy2_down3.png
enemy2_down4.png
me1.png
me2.png
me_destroy_1.png
me_destroy_2.png
me_destroy_3.png
me_destroy_4.png
bullet1.png
bullet2.png