为了账号安全,请及时绑定邮箱和手机立即绑定

If 语句检查 sprite.Group = 0

If 语句检查 sprite.Group = 0

PIPIONE 2023-05-09 14:57:33
我尝试使用 pygame 创建游戏,然后使用 myTarget=pygame.sprite.Group() 我的问题是如何创建判断 myTarget=0 的 if 语句,我已经在使用if myTarget=="0"和if myTarget == [0]但是这些代码都没有触发,我也已经检查过该组内没有更多的精灵(使用 print(myTarget) 说 <Group(0 sprites)> 对不起我的英语
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

不幸的是,该SpriteGroup对象不能被直接索引。


您可以使用SpriteGroup.sprites()成员函数,它返回所有元素的 python 列表,然后只测试0该列表中的项目:


import pygame


class SimpleSprite( pygame.sprite.Sprite):

    def __init__(self):

        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.Surface( ( 64, 64 ), pygame.SRCALPHA )

        self.image.fill( ( 255, 255, 12 ) )

        self.rect = self.image.get_rect()



pygame.init()


sprite_group = pygame.sprite.Group()  # empty group


# Make and add 3 sprites to the group

sprite_a = SimpleSprite()

sprite_b = SimpleSprite()

sprite_c = SimpleSprite()

sprite_group.add( sprite_a )

sprite_group.add( sprite_b )

sprite_group.add( sprite_c )


print( "Group has %d sprites" % ( len( sprite_group ) ) )


if ( sprite_a == sprite_group.sprites()[0] ):                 # <<-- HERE

    print( "Sprite A is the 0th item in the group" )

else:

    print( "Sprite A is NOT the 0th item" )

这给了我输出:


...

组有 3 个精灵

Sprite A 是组中的第 0 个项目


您也可以使用len()Sprite Group 上的函数来测试它是否为空。


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信