kygschp 发表于 2021-10-17 13:55:18

pygame 精灵

在碰撞检测这里需要在每次循环时,先删除组里的一个精灵,再添加这个精灵。
这里我有个问题就是,每次删除后,再添加时,这个精灵在组里的位置是不是会发生改变,这样会不会有什么影响?      



      for each in group:
            print(each)
            group.remove(each)
            if pygame.sprite.spritecollide(each, group, False):
                each.speed = -each.speed
                each.speed = -each.speed
            group.add(each)
            for eve in group:
                print(eve)

qiuyouzhi 发表于 2021-10-17 14:06:15

不会

kygschp 发表于 2021-10-17 19:23:44

qiuyouzhi 发表于 2021-10-17 14:06
不会

精灵在组里的位置不会改变吗

qiuyouzhi 发表于 2021-10-17 19:41:30

kygschp 发表于 2021-10-17 19:23
精灵在组里的位置不会改变吗

改变了又会有什么影响呢

kygschp 发表于 2021-10-17 21:41:52

qiuyouzhi 发表于 2021-10-17 19:41
改变了又会有什么影响呢

如果是列表的话,执行类似的操作,结果就变乱了

a = ['a', 'b', 'c', 'd', 'e']

for i in range(5):
    item = a.pop(i)
    print(item)
    a.append(item)

为什么使用group的时候,结果就不会变乱呢

qiuyouzhi 发表于 2021-10-18 18:20:28

kygschp 发表于 2021-10-17 21:41
如果是列表的话,执行类似的操作,结果就变乱了

a = ['a', 'b', 'c', 'd', 'e']


对呀,结果就变乱了
可这又会有什么影响呢?
那段代码的本质是遍历这个 group,然后依次进行碰撞检测
计算机运行的速度是很快的,改变一下顺序几乎是没有影响的(数据量不大)
Python 的运行速度还没有到判断一次需要一秒的地步

2242253525 发表于 2021-10-18 22:10:49

我觉得不会吧QAQ 我也不太懂诶
页: [1]
查看完整版本: pygame 精灵