我正在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