【查漏补缺】Python游戏模块121~140

作者: TensorFlow开发者 | 来源:发表于2019-03-09 11:42 被阅读0次

121.游戏窗口中显示图像:
一,img=pygame.image.load(路径)并把加载到内存中的图片返回给调用者。

二,屏幕对象.blit(img, (x, y))把img图像绘制在x,y位置处。

三,pygame.dusplay.update()

122.pygame游戏时钟控制刷新频率:

clock= pygame.time.Clock()
在游戏循环中,控制clock的刷新频率每秒60次 
clock.tick(60)

123.pygame中通过pygame.event.get()来获取用户当前所做的事件的列表(用户同一时间可以做很多事情)。

124.如果开发的子类不是直接继承自object,则在重写初始化方法时,一定要先调用父类的init()方法。

125.pygame中可以使用pygame.time.set_timer(eventId, 间隔时间)来添加定时器。

126.导入模块的顺序:先导入官方标准模块,再导入第三方模块,最后导入自己的模块。

127.pygame.sprite.groupcollide(group1, group2, dokill1, dokill2, collided=None)---Sprite_dict专门用来检测两个精灵组是否发生了碰撞。碰撞后,dokill1用来控制碰撞后group1是否销毁;dokill2用来控制碰撞后group2是否销毁;

128.模块之间循环导入,会报ImportErorr。设计模块时,应避免循环导入。

129.特别注意:
a=3
b=3
则,a==b和a is b都返回True,

a=30000
b=30000
则,a==b返回True, a is b 返回False

130.深拷贝copy.deepcopy(aaa)、浅拷贝copy.copy(aaa)深入剖析:
深拷贝copy.deepcopy(aaa)不管引用层级有多深,都会拷贝出来让其与源彻底独立。比如,一个list中存放的是另外list的引用,则进行深拷贝时,拷贝出来的会与源彻底独立了。

浅拷贝copy.copy(aaa)最多只会copy第一层,也有可能不拷贝。之所以这么说,是因为:当被拷贝的是可变类型时,不管引用层级有多深,只会copy第一层,后面的引用的与源共用一个。而当被拷贝的是不可变类型时,第一层也不拷贝。

131.属性、属性(多见于Python把我们定义的私有变量前面加上类名)、属性、属性,含义各不同。属性公有属性,属性、属性均表示私有属性,属性_内置属性。

属性、_属性在from xxx模块 import *这种情况下,是导入不过来的。在import xxx模块可以被导进来。

132.私有属性之所以无法调用,正是Python把我们定义的私有变量前面加上_类名,最终变量名即:_类名__变量名。当我们知道了这个规则后,尽管可以通过这种方式调用,但极不推荐!

133.@property装饰器修饰的方法名(例如:name)会自动成为一个属性。当name方法被@property装饰后,自动多了个@name.setter。用@name.setter来修饰的方法将被视为name的setter方法。
注意的是:@name.setter来修饰的方法名就必须是name了,不可以随意修改了。否则设置值时,会报错!

@property
def name(self):
    pass

@name.setter
def name(self, new_name):
    
    pass

134.all作用:all是个模块中的全局变量,如果在xxx模块中定义了该变量,那么通过from xxx模块 import *来导入该模块时,只能导入里面配置的类、变量、方法。all=["变量名", "方法名", "类名"],配置不分先后顺序。

135.range(start,end),按[start,end)左闭合右开生成list。

136.range()使用时有何风险?
python2.x中有风险,如果要生成的list特别大,比如几千万甚至更大,则会报错:Memory Error

python3.x中,则不管要生成的list是多大,都返回一个range对象。不存在风险。

137.当用Thread()来创建一个线程对象时,仅仅是创建了一个普通子线程对象,此时子线程并未开始执行任务。

138.当子线程对象的start()被调用时,子线程开始执行任务;当一个子线程的任务执行完成后,该子线程生命周期自动终结。

139.主线程会等他所创建出来的子线程的任务都执行完成后,该主线程才会死亡。

140.当自定义的线程类,要继承自threading.Thread类,并重写run方法,把子线程要做的任务写在该run方法,此时再调用自己创建的该线程类的start()方法时,内部就会自动调用run方法了,执行我们要在子线程做的任务了。

相关文章

  • 【查漏补缺】Python游戏模块121~140

    121.游戏窗口中显示图像:一,img=pygame.image.load(路径)并把加载到内存中的图片返回给调用...

  • 【Android面试查漏补缺】之事件分发机制详解

    前言 查漏补缺,查漏补缺,你不知道哪里漏了,怎么补缺呢?本文属于【Android面试查漏补缺】系列文章第一篇,持续...

  • 【justforme】python查漏补缺

    数据类型(也是对象来的) 整数(0xffe3)、浮点数(1.23e5==1.23*10的5次方)、字符串、True...

  • python查漏补缺-基础

    最近刷题感觉一些简单的概念看似很熟悉,实际上还有很多旮旯需要掌握,本篇不做笼统的汇总,仅针对一些易混淆概念之间的区...

  • 查漏补缺

    如果想让HTML5标签兼容低版本浏览器的话,可以使用 html5shiv js来实现。注意:一定要把它引入到前面。...

  • 查漏补缺

    图文环绕和浮动 最初的CSS只是用来写文章,熟练使用float和clear两个属性来布局: float属性:指定一...

  • 查漏补缺

    1.js字符串转换成数字与数字转换成字符串的实现方法https://www.2cto.com/kf/201612/...

  • 查漏补缺

    浮动原理 1.使用之初:是为了让文字环绕图片,并且不会遮住文字。如果让图片与文字有间距,我们在浮动元素上添加。2....

  • 查漏补缺

    今天数学老师外出学习,我用了一上午的时间给孩子们查漏补缺。 首先,训练朗读:从段落与段落之间的大停顿...

  • 查漏补缺

    1 Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换2 写 u'中' 和 u'\u4e...

网友评论

    本文标题:【查漏补缺】Python游戏模块121~140

    本文链接:https://www.haomeiwen.com/subject/cuzvuqtx.html