关于topleft的实现顺序
老师您好,如图所示代码,topleft指令在self.rect的下一行,相当于先执行self.rect,再执行下一行的topleft
但是下面在绘制的时候,为什么采用的是self.rect的位置呢,这个时候不是还没有运行到topleft对位置进行修正么
14
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕觉浅
2020-05-14 17:28:51
同学你好:这里的self.rect = self.image.get_rect()和self.rect.topleft = init_pos这两行代码是在Block类中的__init__()函数里的,而__init__()函数是类的初始化函数,即会在类实例化对象时做初始化调用。因此在下面实例化精灵对象sprite_1 = Block(pygame.Color(255, 0, 0), 50, 50, (50, 50))和sprite_2 = Block(pygame.Color(0, 255, 0), 50, 50, (90, 90))时就已经为两个实例对象分别执行过self.rect = self.image.get_rect()和self.rect.topleft = init_pos这两行代码了。下面绘制时也就可以直接使用sprite_1.rect和sprite_2.rect,已经赋值为指定值。
如果解决了你的疑惑,请采纳,祝学习愉快~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星