如何解决Python Pygame获取Sprite组中Sprite的属性
我有一个名为“ all_bullets”的精灵组。我正在尝试制作飞旋镖引擎,因此当我拍摄(按空格键)时,会将一个子弹对象添加到all_bullets组(我已经对该类进行了编码)。但是,我不想拍摄尽可能多的飞旋镖。因此,我只想在精灵组中没有回旋镖(子弹对象)时创建项目符号对象,因此我知道屏幕上没有回旋镖。但是,还有其他子弹。像手枪一样。 因此,我想知道如何获取Sprite组内部对象的.image属性。该组中有多个对象,所以我只尝试输入'bullet.image'无效。 有什么建议?预先感谢
解决方法
没有任何代码很难回答。但是您的建议是,直接引用精灵的.image
应该有效。
考虑一个简单的Bullet
精灵:
class BulletSprite( pygame.sprite.Sprite ):
def __init__( self,filename,from_point,to_point,speed=1 ):
pygame.sprite.Sprite.__init__( self )
self.image = pygame.image.load( filename ).convert_alpha()
self.rect = self.image.get_rect()
self.speed = speed
self.rect.center = ( from_point )
self.x = from_point[0]
self.y = from_point[1]
#...
带有一个精灵组:
all_bullets = pygame.sprite.Group()
# Add some bullets
for i in range( 5 ):
from_point = ( 0,WINDOW_HEIGHT//2 ) # middle left
to_point = ( WINDOW_WIDTH,100 * i ) # somewhere right
# create the bullet
new_bullet = Bullet( 'bullet.png',to_point )
all_bullets.add( to_point )
# and one more:
boomerang1 = Bullet( 'boomerang.png',( 0,0 ),( WINDOW_WIDTH,WINDOW_HEIGHT ) )
all_bullets.add( boomerang1 )
现在,绝对有可能使用/访问各个精灵的.image
成员来遍历此列表:
for bullet in all_bullets: # every sprite in the group
window.blit( bullet.image,( bullet.x,bullet.y ) ) # paint the image
请注意,这可能不是最佳方法,因为对象的内部部件最好留给对象使用。因此,在上述情况下,您将创建一个bullet.draw()
函数,并调用它以绘制image
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。