第 12 章 武装飞船

我们来开发一个游戏吧! 我们将使用Pygame, 这是一组功能强大而有趣的模块, 可用于管理图形、 动画乃至声音, 让你能够更轻松地开发复杂的游戏。 通过使用
Pygame来处理在屏幕上绘制图像等任务, 你不用考虑众多烦琐而艰难的编码工作, 而是将重点放在程序的高级逻辑上。

在本章中, 你将安装Pygame, 再创建一艘能够根据用户输入而左右移动和射击的飞船。 在接下来的两章中, 你将创建一群作为射杀目标的外星人, 并做其他的改进,如限制可供玩家使用的飞船数以及添加记分牌。

从本章开始, 你还将学习管理包含多个文件的项目。 我们将重构很多代码, 以提高代码的效率, 并管理文件的内容, 以确保项目组织有序。创建游戏是趣学语言的理想方式。 看别人玩你编写的游戏让你很有满足感, 而编写简单的游戏有助于你明白专业级游戏是怎么编写出来的。 在阅读本章的过程中, 请动手输入并运行代码, 以明白各个代码块对整个游戏所做的贡献, 并尝试不同的值和设置, 这样你将对如何改进游戏的交互性有更深入的认识。

注意 游戏《外星人入侵》 将包含很多不同的文件, 因此请在你的系统中新建一个文件夹, 并将其命名为alien_invasion 。 请务必将这个项目的所有文件都存储
到这个文件夹中, 这样相关的import语句才能正确地工作。

12.1 规划项目
开发大型项目时, 做好规划后再动手编写项目很重要。 规划可确保你不偏离轨道, 从而提高项目成功的可能性。下面来编写有关游戏《外星人入侵》 的描述, 其中虽然没有涵盖这款游戏的所有细节, 但能让你清楚地知道该如何动手开发它。
在游戏《外星人入侵》 中, 玩家控制着一艘最初出现在屏幕底部中央的飞船。 玩家可以使用箭头键左右移动飞船, 还可使用空格键进行射击。 游戏开始时, 一群外星人出现在天空中, 他们在屏幕中向下移动。 玩家的任务是射杀这些外星人。 玩家将所有外星人都消灭干净后, 将出现一群新的外星人, 他们移动的速度更快。 只要有外星人撞到了玩家的飞船或到达了屏幕底部, 玩家就损失一艘飞船。 玩家损失三艘飞船后, 游戏结束。

在第一个开发阶段, 我们将创建一艘可左右移动的飞船, 这艘飞船在用户按空格键时能够开火。 设置好这种行为后, 我们就能够将注意力转向外星人, 并提高这款游戏的可玩性。

12.2 安装Pygame

开始编码前, 先来安装Pygame。 下面介绍如何在Linux、 OS X和Microsoft Windows中安装Pygame。

如果你使用的是Linux系统和Python 3, 或者是OS X系统, 就需要使用pip来安装Pygame。 pip是一个负责为你下载并安装Python包的程序。 接下来的几小节介绍如何使用pip来安装Python包。
如果你使用的是Linux系统和Python 2.7, 或者是Windows, 就无需使用pip来安装Pygame; 在这种情况下, 请直接跳到12.2.2节或12.2.4节。

注意 接下来的部分包含在各种系统上安装pip的说明, 因为数据可视化项目和Web应用程序项目都需要pip。 这些说明也可在https://www.nostarch.com/pythoncrashcourse/

在线资源中找到。 如果安装时遇到麻烦, 看看在线说明是否管用。
12.2.1 使用pip安装Python包
大多数较新的Python版本都自带pip, 因此首先可检查系统是否已经安装了pip。 在Python 3中, pip有时被称为pip3。

  1. 在Linux和OS X系统中检查是否安装了pip
    打开一个终端窗口, 并执行如下命令:
$  pip  --version
❶   pip  7.0.3  from  /usr/local/lib/python3.5/dist-packages  (python  3.5)
$

如果你的系统只安装了一个版本的Python,并看到了类似于上面的输出,请跳到12.2.2节或12.2.3节。如果出现了错误消息,请尝试将pip替换为pip3。如果这两个版本都没有安装到 你的系统中,请跳到“安装pip”。
如果你的系统安装了多个版本的Python,请核实pip关联到了你使用的Python版本,如python 3.5(见❶)。如果pip关联到了正确的Python版本,请跳到12.2.2节或12.2.3节。如果pip没有关联到正确的Python版本,请尝试将pip替换为pip3。如果执行这两个命令时,输出都表明没有关联到正确的Python版本,请跳到“安装pip”。

2.在Windows系统中检查是否安装了pip

打开一个终端窗口,并执行如下命令:

$  python  -m  pip  --version
❶   pip  7.0.3  from  C:\Python35\lib\site-packages  (python  3.5)
$


如果你的系统只安装了一个版本的Python,并看到了类似于上面的输出,请跳到12.2.4节。如果出现了错误消息,请尝试将pip替换为pip3。如果执行这两个命令时都出现错误消 息,请跳到“安装pip”。
如果你的系统安装了多个版本的Python,请核实pip关联到了你使用的Python版本,如python 3.5(见❶)。如果pip关联到了正确的Python版本,请跳到12.2.4节。如果pip没有关联到正确的Python版本,请尝试将pip替换为pip3。如果执行这两个命令时都出现错误消息,请跳到“安装pip”。

3.安装pip
要安装pip,请访问https://bootstrap.pypa.io/get-pip.py 。如果出现对话框,请选择保存文件;如果get-pip.py的代码出现在浏览器中,请将这些代码复制并粘贴到文本编辑器中,再将文件保存为get-pip.py。将get-pip.py保存到计算机中后,你需要以管理员身份运行它,因为pip将在你的系统中安装新包。
注意 如果你找不到get-pip.py,请访问https://pip.pypa.io/ ,单击左边面板中的Installation,再单击中间窗口中的链接get-pip.py。

4.在Linux和OS X系统中安装pip
使用下面的命令以管理员身份运行get-pip.py:

$  sudo  python  get-pip.py

注意 如果你启动终端会话时使用的是命令python3 ,那么在这里应使用命令sudo python3 get-pip.py 。这个程序运行后,使用命令pip --version (或pip3 --version )确认正确地安装了pip。

5.在Windows系统中安装pip
使用下面的命令运行get-pip.py:

$  python  get-pip.py

如果你在终端中运行Python时使用的是另一个命令,也请使用这个命令来运行get-pip.py。例如,你可能需要使用命令python3 get-pip.py 或C:\Python35\python get- pip.py 。
这个程序运行后,执行命令python -m pip --version 以确认成功地安装了pip。

12.2.2在Linux系统中安装Pygame
如果你使用的是Python 2.7,请使用包管理器来安装Pygame。为此,打开一个终端窗口,并执行下面的命令,这将下载Pygame,并将其安装到你的系统中:

$  sudo  apt-get  install  python-pygame

执行如下命令,在终端会话中检查安装情况:

$ python
>>>  import  pygame
>>>

如果没有任何输出,就说明Python导入了Pygame,你可以跳到12.3节。
如果你使用的是Python 3,就需要执行两个步骤:安装Pygame依赖的库;下载并安装Pygame。
执行下面的命令来安装Pygame依赖的库(如果你开始终端会话时使用的是命令python3.5 ,请将python3-dev 替换为python3.5-dev ):

$  sudo  apt-get  install  python3-dev  mercurial
$  sudo  apt-get  install  libsdl-image1.2-dev  libsdl2-dev  libsdl-ttf2.0-dev

这将安装运行《外星人入侵》时需要的库。如果你要启用Pygame的一些高级功能,如添加声音的功能,可安装下面这些额外的库:

$  sudo  apt-get  install  libsdl-mixer1.2-dev  libportmidi-dev
$  sudo  apt-get  install  libswscale-dev  libsmpeg-dev  libavformat-dev  libavcode-dev
$  sudo  apt-get  install  python-numpy

接下来,执行下面的命令来安装Pygame(如有必要,将pip 替换为pip3 ):

$  pip  install  --user  hg+http://bitbucket.org/pygame/pygame

告知你Pygame找到了哪些库后,输出将暂停一段时间。请按回车键,即便有一些库没有找到。你将看到一条消息,说明成功地安装了Pygame。 要确认安装成功,请启动一个Python终端会话,并尝试执行下面的命令来导入Pygame:

$ python3
>>>  import  pygame
>>>

如果导入成功,请跳到12.3节。

12.2.3在OS X系统中安装Pygame
要安装Pygame依赖的有些包,需要Homebrew。如果你没有安装Homebrew,请参阅附录A的说明。为安装Pygame依赖的库,请执行下面的命令:

$  brew  install  hg  sdl  sdl_image  sdl_ttf

这将安装运行游戏《外星人入侵》所需的库。每安装一个库后,输出都会向上滚动。如果你还想启用较高级的功能,如在游戏中包含声音,可安装下面两个额外的库:

$  brew  install  sdl_mixer  portmidi

使用下面的命令来安装Pygame(如果你运行的是Python 2.7,请将pip3 替换为pip ):

$  pip3  install  --user  hg+http://bitbucket.org/pygame/pygame

启动一个Python终端会话,并导入Pygame以检查安装是否成功(如果你运行的是Python 2.7,请将python3 替换为python ):

$ python3
>>>  import  pygame
>>>

如果导入成功,请跳到12.3节。

12.2.4在Windows系统中安装Pygame
Pygame项目托管在代码分享网站Bitbucket中。要在Windows系统中安装Pygame,请访问https://bitbucket.org/pygame/pygame/downloads/ ,查找与你运行的Python版本匹配的Windows安装程序。如果在Bitbucket上找不到合适的安装程序,请去http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame 看看。
下载合适的文件后,如果它是.exe文件,就运行它。
如果该文件的扩展名为.whl,就将它复制到你的项目文件夹中。再打开一个命令窗口,切换到该文件所在的文件夹,并使用pip来运行它:

>  python  -m  pip  install  --user  pygame-1.9.2a0-cp35-none-win32.whl


12.3开始游戏项目
现在来开始开发游戏《外星人入侵》。首先创建一个空的Pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。

12.3.1创建Pygame窗口以及响应用户输入
首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下:
alien_invasion.py

import  sys
import  pygame
def  run_game():# 初始化游戏并创建一个屏幕对象pygame.init()screen  =  pygame.display.set_mode((1200,  800))
pygame.display.set_caption("Alien  invasion")# 开始游戏的主循环
while  True:# 监视键盘和鼠标事件for  event  in  pygame.event.get():if  event.type  ==  pygame.QUit:sys.exit()# 让最近绘制的屏幕可见pygame.display.flip()
run_game()

首先,我们导入了模块sys 和pygame 。模块pygame 包含开发游戏所需的功能。玩家退出时,我们将使用模块sys 来退出游戏。
游戏《外星人入侵》的开头是函数run_game() 。❶处的代码行pygame.init() 初始化背景设置,让Pygame能够正确地工作。在❷处,我们调
用pygame.display.set_mode() 来创建一个名为screen 的显示窗口,这个游戏的所有图形元素都将在其中绘制。实参(1200, 800) 是一个元组,指定了游戏窗口的尺寸。通过将这些尺寸值传递给pygame.display.set_mode() ,我们创建了一个宽1200像素、高800像素的游戏窗口(你可以根据自己的显示器尺寸调整这些值)。
对象screen 是一个surface。在Pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素(如外星人或飞船)都是一个surface。display.set_mode()返回的surface表示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。
这个游戏由一个while 循环(见❸)控制,其中包含一个事件循环以及管理屏幕更新的代码。事件是用户玩游戏时执行的操作,如按键或移动鼠标。为让程序响应事件,我们编写一个事件循环,以侦听事件,并根据发生的事件执行相应的任务。❹处的for 循环就是一个事件循环。

为访问Pygame检测到的事件,我们使用方法pygame.event.get() 。所有键盘和鼠标事件都将促使for 循环运行。在这个循环中,我们将编写一系列的if 语句来检测并响应特定的事件。例如,玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUit 事件,而我们调用sys.exit() 来退出游戏(见❺)。

❻处调用了pygame.display.flip() ,命令Pygame让最近绘制的屏幕可见。在这里,它在每次执行while 循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.flip() 将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
在这个基本的游戏结构中,最后一行调用run_game() ,这将初始化游戏并开始主循环。如果此时运行这些代码,你将看到一个空的Pygame窗口。

12.3.2设置背景色
Pygame默认创建一个黑色屏幕,这太乏味了。下面来将背景设置为另一种颜色:
alien_invasion.py

import  sys
import  pygame
def  run_game():# 初始化游戏并创建一个屏幕对象pygame.init()screen  =  pygame.display.set_mode((1200,  800))
pygame.display.set_caption("Alien  invasion")# 开始游戏的主循环
while  True:# 监视键盘和鼠标事件pygame.init()screen = pygame.display.set_mode((1200, 800))pygame.display.set_caption("Alien  invasion")# 开始游戏的主循环
while True:# 监视键盘和鼠标事件for  event  in  pygame.event.get():if  event.type  ==  pygame.QUIT:sys.exit()# 让最近绘制的屏幕可见pygame.display.flip()
run_game()
pygame.display.set_caption("Alien  invasion")# 设置背景色
bg_color  =  (230,  230,  230)# 开始游戏主循环. while  true:
while  True:# 监听键盘和鼠标事件for  event  in  pygame.event.get():if  event.type  ==  pygame.QUIT:sys.exit()# 每次循环时都重绘屏幕screen.fill(bg_color)# 让最近绘制的屏幕可见pygame.display.flip()
run_game()


首先,我们创建了一种背景色,并将其存储在bg_color 中(见❶)。该颜色只需指定一次,因此我们在进入主while 循环前定义它。

在Pygame中,颜色是以RGB值指定的。这种颜色由红色、绿色和蓝色值组成,其中每个值的可能取值范围都为0~255。颜色值(255, 0, 0)表示红色,(0, 255, 0)表示绿色,而(0, 0,255)表示蓝色。通过组合不同的RGB值,可创建1600万种颜色。在颜色值(230, 230, 230)中,红色、蓝色和绿色量相同,它将背景设置为一种浅灰色。
在❷处,我们调用方法screen.fill() ,用背景色填充屏幕;这个方法只接受一个实参:一种颜色。

12.3.3创建设置类
每次给游戏添加新功能时,通常也将引入一些新设置。下面来编写一个名为settings 的模块,其中包含一个名为Settings 的类,用于将所有设置存储在一个地方,以免在代码中到处添加设置。这样,我们就能传递一个设置对象,而不是众多不同的设置。另外,这让函数调用更简单,且在项目增大时修改游戏的外观更容易:要修改游戏,只需修改settings.py中的一些值,而无需查找散布在文件中的不同设置。
下面是最初的Settings 类:

settings.py

class  Settings():"""存储《外星人入侵》的所有设置的类"""def  __init__(self):"""初始化游戏的设置"""# 屏幕设置self.screen_width  =  1200self.screen_height  =  800self.bg_color  =  (230,  230,  230)

为创建Settings 实例并使用它来访问设置,将alien_invasion.py修改成下面这样:
alien_invasion.py

import  sys
import  pygame
def  run_game():# 初始化游戏并创建一个屏幕对象\pygame.init()ai_settings = Settings()screen  =  \pygame.display.set_mode( (ai_settings.screen_width,  ai_settings.screen_height))
pygame.display.set_caption("Alien  invasion")# 开始游戏的主循环
while  True:# 监视键盘和鼠标事件pygame.init()screen = pygame.display.set_mode((1200, 800))pygame.display.set_caption("Alien  invasion")# 开始游戏的主循环
while True:# 监视键盘和鼠标事件for  event  in  pygame.event.get():if  event.type  ==  pygame.QUIT:sys.exit()# 让最近绘制的屏幕可见pygame.display.flip()# 每次循环时都重绘屏幕screen.fill(ai_settings.bg_color)# 让最近绘制的屏幕可见pygame.display.flip()
run_game()
pygame.display.set_caption("Alien  invasion")# 设置背景色
bg_color  =  (230,  230,  230)# 开始游戏主循环. while  true:
while  True:# 监听键盘和鼠标事件for  event  in  pygame.event.get():if  event.type  ==  pygame.QUIT:sys.exit()# 每次循环时都重绘屏幕screen.fill(bg_color)# 让最近绘制的屏幕可见pygame.display.flip()
run_game()


在主程序文件中,我们导入Settings 类,调用pygame.init() ,再创建一个Settings 实例,并将其存储在变量ai_settings 中(见❶)。创建屏幕时(见❷),使用了ai_settings 的属性screen_width 和screen_height ;接下来填充屏幕时,也使用了ai_settings 来访问背景色(见❸)。

12.4添加飞船图像
下面将飞船加入到游戏中。为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再使用Pygame方法blit() 绘制它。
为游戏选择素材时,务必要注意许可。最安全、最不费钱的方式是使用http://pixabay.com/ 等网站提供的图形,这些图形无需许可,你可以对其进行修改。
在游戏中几乎可以使用任何类型的图像文件,但使用位图(.bmp)文件最为简单,因为Pygame默认加载位图。虽然可配置Pygame以使用其他文件类型,但有些文件类型要求你在计算机上安装相应的图像库。大多数图像都为.jpg、.png或.gif格式,但可使用Photoshop、GIMP和Paint等工具将其转换为位图。
选择图像时,要特别注意其背景色。请尽可能选择背景透明的图像,这样可使用图像编辑器将其背景设置为任何颜色。图像的背景色与游戏的背景色相同时,游戏看起来最漂亮;你也可以将游戏的背景色设置成与图像的背景色相同。

就游戏《外星人入侵》而言,你可以使用文件ship.bmp(如图12-1所示),这个文件可在本书的配套资源(https://www.nostarch.com/pythoncrashcourse/ )中找到。这个文件的背景色与这个项目使用的设置相同。请在主项目文件夹(alien_invasion)中新建一个文件夹,将其命名为images,并将文件ship.bmp保存到这个文件夹中。

游戏《外星人入侵》中的飞船

12.4.1创建Ship 类

选择用于表示飞船的图像后,需要将其显示到屏幕上。我们将创建一个名为ship 的模块,其中包含Ship 类,它负责管理飞船的大部分行为。
ship.py

import  pygame
class  Ship():def  __init__(self,  screen):"""初始化飞船并设置其初始位置"""self.screen  =  screen# 加载飞船图像并获取其外接矩形self.image = pygame.image.load('images/ship.bmp')self.rect = self.image.get_rect()self.screen_rect = screen.get_rect()# 将每艘新飞船放在屏幕底部中央self.rect.centerx = self.screen_rect.centerxself.rect.bottom = self.screen_rect.bottomdef blitme(self):""" 在 指 定 位 置 绘 制 飞 船 """self.screen.blit(self.image, self.rect)


首先,我们导入了模块pygame 。Ship 的方法__init__() 接受两个参数:引用self 和screen ,其中后者指定了要将飞船绘制到什么地方。为加载图像,我们调用了pygame.image.load() (见❶)。这个函数返回一个表示飞船的surface,而我们将这个surface存储到了self.image 中。

加载图像后,我们使用get_rect() 获取相应surface的属性rect (见❷)。Pygame的效率之所以如此高,一个原因是它让你能够像处理矩形(rect 对象)一样处理游戏元素,即便它们的形状并非矩形。像处理矩形一样处理游戏元素之所以高效,是因为矩形是简单的几何形状。这种做法的效果通常很好,游戏玩家几乎注意不到我们处理的不是游戏元素的实际形状。
处理rect 对象时,可使用矩形四角和中心的 x 和 y 坐标。可通过设置这些值来指定矩形的位置。
要将游戏元素居中,可设置相应rect 对象的属性center 、centerx 或centery 。要让游戏元素与屏幕边缘对齐,可使用属性top 、bottom 、left 或right ;要调整游戏元素的水平或垂直位置,可使用属性x 和y ,它们分别是相应矩形左上角的 x 和 y 坐标。这些属性让你无需去做游戏开发人员原本需要手工完成的计算,你经常会用到这些属性。

注意 在Pygame中,原点(0, 0)位于屏幕左上角,向右下方移动时,坐标值将增大。在1200×800的屏幕上,原点位于左上角,而右下角的坐标为(1200, 800)。
我们将把飞船放在屏幕底部中央。为此,首先将表示屏幕的矩形存储在self.screen_rect 中(见❸),再将self.rect.centerx (飞船中心的x 坐标)设置为表示屏幕的矩形的属性centerx (见❹),并将self.rect.bottom (飞船下边缘的y 坐标)设置为表示屏幕的矩形的属性bottom 。Pygame将使用这些rect 属性来放置飞船图像,使其与屏幕下边缘对齐并水平居中。
在❺处,我们定义了方法blitme() ,它根据self.rect 指定的位置将图像绘制到屏幕上。

12.4.2在屏幕上绘制飞船
下面来更新alien_invasion.py,使其创建一艘飞船,并调用其方法blitme():
alien_invasion.py


run_game()中应该定义ai_settings=Settings()
完美解决!

代码中灰色的部分要删除缩进,变成黑色的才生效


https://blog.csdn.net/weixin_42168555/article/details/112032818?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

1

这里慢到质壁分离。。。但还是得等着

c盘python安装目录下安装出错
转换到项目目录下

https://blog.csdn.net/qq_29339467/article/details/105258075

需要把项目装在一个文件夹才可以执行
源码

链接: https://pan.baidu.com/s/1eDVK0cETnNML3vOLo6c_Sg 提取码: kbui 复制这段内容后打开百度网盘手机App,操作更方便哦

第 12 章 武装飞船相关推荐

  1. 《Python编程:从入门到实践》第12章:武装飞船

    做游戏开发会使用到Pygame,为此首先要安装Pygame.Pygame是一组功能强大而有趣的模块,可用于管理图形.动画乃至声音,帮助我们更轻松地开发复杂的游戏. 一.安装Pygame 可利用pip模 ...

  2. python外星人入侵飞船上下移动_Python 项目练习1 外星人入侵(武装飞船)

    Python 项目练习1 外星人入侵(武装飞船) 2020年07月30日 | 萬仟网IT编程 | 我要评论 本项目具体步骤在书本<Python编程:从入门到实践>第十二章中安装pygame ...

  3. python项目一:外星人入侵:(一)武装飞船

    第一章:武装飞船 1.1.规划项目 1.2.安装Pygame 1.3.开始游戏项目 1.3.1.创建pygame窗口以及响应用户输入 1.3.2.设置背景色 1.3.3.创建设置类 1.4.添加飞船图 ...

  4. 阅读10、11、12章

    第10章 假设用户交付给我们一个 任务,然后我们通过调研的出来的结果进行设计,最后的结果跟用户想象的不一样,这应该怎么做? 第11章 团队合作真的需要有那么繁琐的步骤(例如每日例会)吗? 第12章 为 ...

  5. java线程的优先级是数字越大优先级越高_《深入理解Java虚拟机》5分钟速成:12章(Java内存模型与线程)...

    第12章 Java内存模型与线程 前言: 1.物理机如何处理并发问题? 2.什么是Java内存模型? 3.原子性.可见性.有序性的具体含义和应用实现? 4.volatile 关键字特性? 5.基于vo ...

  6. 《互联网理财一册通》一一第12章 移动互联网“指尖上的理财”

    第12章 移动互联网"指尖上的理财" 互联网理财一册通 12.1 网银银行移动客户端 12.2 投资软件与操盘软件 12.3 微信理财通 12.4 手机支付宝 伴随移动互联网的迅猛 ...

  7. 【机器学习实战】第12章 使用 FP-growth 算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则. 本章将继续关注发现 频繁项集 这一任务,并使用 FP ...

  8. 《Groovy极简教程》第12章 Groovy的JSON包

    <Groovy极简教程>第12章 Groovy的JSON包 Groovy自带了转换JSON的功能,相关类都在groovy.json包下.本文参考自Groovy文档 Parsing and ...

  9. 【控制】《多无人机协同控制技术》周伟老师-第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现

    第11章 回到目录 无 第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现 12.1 多无人机协同控制视景仿真系统设计 12.1.1 多无人机协同控制视景仿真系统功能描述 ...

最新文章

  1. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别
  2. flask运行环境搭建(nginx+gunicorn)
  3. Android安全加密:对称加密
  4. 数据结构-单向循环链表、双向循环链表、仿真链表
  5. html5 XMLHttpRequest 图片异步上传
  6. (2021年)IT技术分享社区个人文章汇总(电脑技巧篇)
  7. 自定义Cell的流程
  8. 基于plotly数据可视化_如何使用Plotly进行数据可视化
  9. LeetCode 908. 最小差值 I
  10. 腾讯云mysql架构_一个数据库存储架构的独白
  11. mac上SCRT中文变问号的处理方式,亲测有效
  12. go 对象json转map
  13. 测试无线电频率的软件叫什么,软件无线电到底是什么
  14. 无损连接,函数依赖性判定
  15. Gson解析新浪微博数据
  16. uniapp中scroll-view的下拉刷新
  17. Glide加载图片缩放模式
  18. 区分触摸屏种类的几种方法
  19. 无需外设实现电脑远程开机
  20. PID详解3(摄像头循迹分析)

热门文章

  1. 华硕A8SE系列安装windows XP +驱动安装
  2. 大数据面前,统计学的价值在哪里
  3. 联想服务器怎么做系统备份,联想笔记本怎么做系统备份
  4. Js中身份证验证及社会统一信用代码验证
  5. IOS简单的实现手机震动的提示
  6. 2022-2027年中国酸性蛋白酶行业发展前景及投资战略咨询报告
  7. 给初学者推荐的10个Python免费学习网站,赶紧收藏吧
  8. Linux中彻底删除文件
  9. C. Xenon's Attack on the Gangs(树形dp)
  10. QT Libvlc录像功能的实现(提供32位和64位库)