目录
class
1.class:
class Student(object):
定义类 类名 对象,定义的时候不写出来
创建实例时,student=Student()
self
2.self:
(1)首先定义一个类class之后,在创建两个函数.
(2)def 开始函数定义(格式):def+函数名(函数的参数):
//换行/内部为函数具体功能实现代码
如:def mishi(self):
print(‘严浩翔’)
//self是说明,这个动作是对类的对象做的
def xiao(self):
self.mishi()
//这里是对在一个函数里使用另一个函数
init
Python当中的一个内置方法__init__方法
def init(self, name, score)😕/内置方法的第一个参数永远是self
//意思是将name,score属性绑在self上
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器会自己把实例变量传进去
即 student=Student(“yanhaoxiang”,100)
“””,#,//,->
(1)””” “”” 与”’ ”’是 : 多行注释
(2)# : 单行注释
(3)// : 取整除 – 返回商的整数部分(向下取整)如9//2=4
(4) -> : python函数定义的函数名后面,为函数添加元 数据, 描述函数的返回类型,从而方便开发人员使用
如:def get_image(self) -> pygame.Surface:
初始化数组
初始化数组:
self.action_images=[]
append
append
append(object) 是将一个对象作为一个整体添加到列表中,添加后的列表比原列表多一个元素,该函数的参数可以是任何类型的对象
如a=[1,2,3]
a.append(5)
a=[1,2,3,5]
关于图片的代码解释
在一张44的图像中分割图片,每行图片各自循环,完成活动:
通过subsurface()方法遍历大图中的每一块小图,达到动画效果
self.mast_image = pygame.image.load(‘2233.jpg’) #读取图像
self.image = self.mast_image.subsurface(self.frame_rect) #这里就是在生成子表面
关于图片的代码*
(1)路径文件名:
image_file_path = “./resources/images/welcome/{}-1.png”.format(i)
(2) 图片加载
image = pygame.image.load(image_file_path)
(3) 绘制图片到显示窗口
screen.blit(background, (0, 0))
(4) 显示角色在(200,200)的位置
screen.blit(actor_images[no], (200,200))
(5)调用flip方法更新显示,也可以使用update方法
pygame.display.flip()#更新部分软件界面显示
(6) 初始化一个准备显示的窗口或屏幕
pygame.display.set_mode()
注:(区别)
(1)image = pygame.image.load(image)—使出现的图片透明
(2)image = pygame.image.load(image).convert
使用 convert 可以转换格式,提高 blit 的速度,但不透明
(3)self.image = pygame.image.load(image).convert_alpha()
如果想提高 blit 的速度,但是也想实现透明效果,可以使用该加载方式
python文件的使用方法
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。
if name == ‘ main‘:
(执行代码的过程,在 if name == ‘ main‘: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,
而 import 到其他脚本中是不会被执行的。
如:1.py:
print(“abc”)
if name == ‘ main‘:
print(“yhx”) #会输出abc yhx
2.py:
import package_one.test
print(“Hello”)#会输出abc Hello
staticmethod
@staticmethod——-:
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。
@staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。
@staticmethod中要调用到这个类的一些属性方法,只能直接类名.属性名或类名.方法名
class A(object):
@staticmethod
def static_foo():
print A.bar
super
super()是一个调用父类的方法.
if super’ object has no attribute ‘draw’,意思是super类下面没有draw方法,很可能是没有空格到位
显示角色
xiao_tie = WelcomeSprite(50, 300)
显示角色在(200,200)的位置
xiao_tie.draw(screen)
Original: https://blog.csdn.net/qq_50883182/article/details/118964618
Author: 今天后端学多少了
Title: python游戏代码解析
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/782107/
转载文章受原作者版权保护。转载请注明原作者出处!