精灵对象和精灵组对象,方法调用的疑问
图1定义分别定义了两个方法,blit_me保持子弹位置不变。update子弹飞行攻击。
图2,精灵组对象调用update不报错,调用blit_me会报错?单个精灵对象调用blit_me就可以顺利运行。
图3,ctrl+点击update查看源码,bullet继承自类Sprite,改写的是类AbstractGroup下update方法
问1:这两个方法在调用的时候有何区别?精灵组对象调用报错'Group' object has no attribute 'blit_me'
问2:类bullet继承自类Sprite类,加到pygame.sprite.Group() 精灵组中怎么就继承自类AbstractGroup?
update改写的应该是类Sprite下的方法,调用的时候就变成改写类AbstractGroup下的方法了?
正在回答 回答被采纳积分+1
同学你好:
Bullet是精灵类(Sprite),定义的bullets是精灵组(Group),将初识化的bullet使用add方法添加到bullets精灵组中。
blit_me是在精灵类中定义的方法,所以是Sprite的方法,不是Group的方法。因此会报错,只要将组遍历成Sprite即可使用。
。
update()方法·在Sprite类中是调用(call by)的Group中的update()方法。
2.Group类和Sprite类没有继承关系,但是Group类继承了AbstractGroup类。python中所有的额东西都可以成为对象,也可以成为参数,使用Group时,可以将Sprite看做一个参数即可。
object代表初始类,也叫做基类。
如果我解决了同学的问题,请采纳!学习·愉快^_^。
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星