У меня есть игра, работающая на питоне. Он получает текстуру для бонуса со следующей строкой:

self.texture = bs.getTexture("texture1")

Я хочу отредактировать его, чтобы загружаемая текстура изменялась в последовательности. Как и в первый раз powerup имеет texture1, второй раз texture2 и в третий раз снова texture1.

Я попытался использовать random.choose, но он стал случайным и никакой последовательности не соблюдается.

Подскажите, пожалуйста, что нужно написать вместо этой строки.

0
Ayush Mishra 6 Янв 2018 в 15:37

2 ответа

Лучший ответ

Используйте itertools.cycle ()

import itertools

sequence = ['texture1', 'texture2']
texture = itertools.cycle(sequence)

next(texture)
> texture1
next(texture)
> texture2
next(texture)
> texture1
next(texture)
> texture2
next(texture)
> texture1
1
AK47 6 Янв 2018 в 13:22

Вы можете использовать операцию модуля, чтобы вернуться к первому индексу массива. Без использования дополнительных библиотек:

count = 0
sequence = ['texture1', 'texture2']
texture = count % len(sequence)
count = count + 1

# next_texture = count % len(sequence)
0
ninesalt 6 Янв 2018 в 12:50