目录

14天学习训练营导师课程:
李宁《Python Pygame游戏开发入门与实战》
李宁《计算机视觉OpenCV Python项目实战》1
李宁《计算机视觉OpenCV Python项目实战》2
李宁《计算机视觉OpenCV Python项目实战》3
努力是为了在平庸生活中变得更好~
学习有时候是枯燥的,但收获的快乐是加倍的
在使用 PyGame 之前,需要先通过 import pygame 导入 PyGame 模块。
#导入PyGame模块
import pygame
#导入sys模块
import sys
导入完成后要做的就是初始化 PyGame,它完成 PyGame 中所有模块的初始化操作。
#初始化PyGame
pygame.init()
screen 从字面意识理解即为屏幕,在 PyGame 中,screen 本质上是一个 Surface 对象。Surface 对象是 PyGame 中重要的部分,可以把它想像成我们要绘制图形、图像的一张白纸,在这张白纸上,我们可以绘制任意的形状、图像、文字等。
screen=pygame.display.set_mode((800,600))
以上代码,是通过 PyGame 中的 display 模块设置主窗口的大小,也就是说 screen 是我们整个程序的主窗口,可以理解为我们最大的画布,我们后面创建的画布(Surface 对象)都将绘制到这个最大的画布上。
pygame.display.set_caption("第一个PyGame程序")
以上代码,是通过 PyGame 中的 display 模块设置主窗口的标题,即标题栏中的内容。
在游戏中我们需要不断的进行某些操作,例如当游戏中的角色位置或状态发生变化时,需要重新绘制屏幕,用户对鼠标和键盘的操作等,因此,在游戏中,我们需要不断的循环对屏幕进行更新,监听用户的操作。只有当用户点击关闭按钮时,游戏退出,应用程序结束。所以在程序中设置了一个死循环,即循环条件为 True 的 while 循环,该循环内即为游戏的业务逻辑。
#PyGame业务逻辑
while True:
# 循环获取事件,监听事件状态
for event in pygame.event.get():
# 判断用户是否点了"X"关闭按钮,并执行if代码段
if event.type == pygame.QUIT:
# 卸载所有模块
pygame.quit()
# 终止程序,确保退出程序
sys.exit()
在循环内部执行游戏的业务逻辑,例如不断绘制屏幕、监听用户操作。以上代码中 while 循环内部的 for 循环,用来循环获取用户的事件,如果用户的事件类型是点击关闭按钮,则卸载 PyGame 的所有模块,并且退出游戏。
通常在 while 循环内部,我们需要做三件事,分别是获取事件、更新游戏状态、重新绘制屏幕。
通过以上的代码,我们即可以创建一个 PyGame 的应用了。
init 这个单词在我们用 python 进行面向对象开发的时候是跑不了的。理解 python 的__init__其实就是和这里的 init 作用差不多——做的工作都是初始化。
在解释这个概念时,首先还是以专有名词入手—— 初始化(initialize vt.)。至于其作用,我的解释是这样的:
我们已经知道 python 有一个特殊的 “工具包(模块)” 叫 pygame 了。在我们要动手用它完成我们的想法之前,电脑这个“强迫症”需要我们检查一遍,这个工具包是否完整,能否正常给我们提供帮助。而这个检查的动作,就是
pygame.init()。
这个其实也不难得到答案。我直接在 shell 执行了这个函数:
>>> import pygame
>>> pygame.init()
(6, 0)
不明所以的,他给了我一个元组 (6,0),我也很不理解,这个 6 和 0 分别代表什么意思。所以查阅了 pygame 的官方文档:
initialize all imported pygame modules
init() -> (numpass, numfail)
Initialize all imported pygame modules. No exceptions will be raised if a module fails, but the total number if successful and failed inits will be returned as a tuple. You can always initialize individual modules manually, but
pygame.init()is a convenient way to get everything started. Theinit()functions for individual modules will raise exceptions when they fail.You may want to initialize the different modules separately to speed up your program or to not use things your game does not.
It is safe to call this
init()more than once: repeated calls will have no effect. This is true even if you havepygame.quit()all the modules.
翻译如下:
初始化所有导入的 pygame 模块。如果模块失败,则不会引发异常,但如果成功且失败的总数将作为元组返回。您可以随时手动初始化单个模块,但 pygame.init () 初始化所有导入的 pygame 模块是一种方便的方法来启动所有内容。各个模块的 init () 函数会在失败时引发异常。
您可能希望单独初始化不同的模块以加速您的程序或不使用您的游戏没有的东西。
不止一次调用此 init () 是安全的:重复调用将不起作用。即使你有 pygame.quit () 所有模块也是如此。
>>> import pygame
>>> pygame.init()
(6, 0)
>>> pygame.display.init()
>>> pygame.font.init()
>>> pygame.joystick.init()
>>> pygame.mixer.init()
>>> pygame.freetype.init()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'pygame' has no attribute 'freetype'
>>> pygame.midi.init()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'pygame' has no attribute 'midi'
>>> pygame.cdrom.init()
>>> pygame.scrap.init()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pygame.error: No display mode is set
我把 pygame 官网上面的 doc 里介绍的所有带有 init 的子模块都运行了一遍。其中 midi 和 freetype 这两个模块已经没有了(吐槽一下官方的文档吧,都没了还放着嘛)。最后一个 scrap 初始化是因为没有窗口。这样的话,其实已经有 5 个模块是被初始化了。但是 scrap 在没有窗口的情况下会报错,到底算不算一个 init。还需要之后再仔细看看文档和源码吧。
Pygame 是被设计用来写游戏的 python 模块集合,Pygame 是在优秀的 SDL 库之上开发的功能性包。使用 python 可以导入 pygame 来开发具有全部特性的游戏和多媒体软件,Pygame 是极度轻便的并且可以运行在几乎所有的平台和操作系统上。
之后还需要逐步深入才能有更多的认识,一起加油!
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack
如何学习ruby的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/
我使用RVM安装Ruby-2.1.5并再次运行bundle。现在pggem不会安装,我得到这个错误:geminstallpg-v'0.17.1'----with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configBuildingnativeextensionswith:'--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config'Thiscouldtakeawhile...ERROR:Error
安装Rails时,一切都很好,但后来,我写道:rails-v和输出:/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`require':cannotloadsuchfile--rails/cli(LoadError)from/home/toshiba/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in`r
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG