我正在pygame中开发一款游戏,其中敌方船只将从屏幕开始,然后沿着Y轴向玩家垂直移动。将范围值转换为整数
但是,我在访问敌人的位置时遇到了一些麻烦,因为它都是相对于一个范围。我不完全不太清楚如何解释,但这里是我的敌人类:
class EnemyActive(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
enemy_img_list = ['enemyshipone.png', 'enemyshiptwo.png',
'enemyshipthree.png','enemyshipfour.png']
enemy_img = random.choice(enemy_img_list)
self.image = pygame.image.load(enemy_img)
self.rect = self.image.get_rect()
self.rect.x = random.randrange(0,400)
self.rect.y = random.randrange(-200,-10)
self.speed = random.randrange(1,3)
def update(self):
self.rect.y += self.speed
def getCoord(self):
return (self.rect.x, self.rect.y)
所以,当我尝试访问使用其他功能的位置,这需要在(X, y)坐标:
particle_list = particles.create_particles(particle_list,enemy.getCoord())
它回来与一个错误,说明:
号码=范围(-5,-1)+范围(1,5)
TypeError:不支持的操作数类型+:'范围'和'范围'
我不会说谎,并说我完全理解错误,但我确实看到逻辑背后的推理。我怎样才能让我的'getCoord'函数发送适当的坐标?
如果您正在使用Python 3,在这里看到:http://stackoverflow.com/questions/13318083/python-unsupported-types-range-and-range – Gabriel
你能发布整个堆栈跟踪,所以我们不必猜测会发生什么? – tdelaney
您的代码是否实现该行?你想要它做什么?在Python 2中,'range'返回一个列表,并且它们会连接而没有错误。在python 3上,你可以'numbers = list(range(-5,-1))+ list(range(1,5))''。 – tdelaney