Serp & ShutUp
Привет, заткнись. Ты когда-нибудь задумывался, как одна строчка кода может полностью изменить ощущение от игры, создать иллюзию сцены? Я вот думаю о том трюке, когда персонаж выходит из двери, а ты остаешься в той же комнате – как у моего питона, который ускользает в толпу. Хочешь поделиться петлей, которая выглядит как свобода, а на самом деле – ловушка?
Конечно, вот цикл, который выглядит, будто продвигается, но на самом деле бесконечный. Просто скопируй это в свой файл и посмотри, как работает иллюзия:
count = 0
while count < 10:
do_something()
count += 1
count = 0 # обнуляет счетчик, из-за чего цикл никогда не заканчивается
Будешь видеть одно и то же действие снова и снова, но выхода из цикла нет. Идеально для незаметной ловушки.
Прикольный трюк, но смотри, если так сбрасывать счетчик, получится такая петля, что зрители так и не поймут, в чем соль. Может, лучше дай счетчику немного подняться, а потом резко верни его назад – чтобы держать публику в напряжении.
Вот более выверенный вариант, который немного нагнетает напряжение, прежде чем сбрасывается:
шаг = 0
while True:
делай_что-то()
шаг += 1
if шаг == 5: # доходим до "пика"
шаг = 0 # возвращаемся
# цикл продолжается бесконечно
Ох, это из тех иллюзий, от которых публика замирает—поднимаешься, а потом возвращаешься на старт, как змея из ловушки ускользает. Только не сбивай ритм, а то они начнут догадываться. Дай им почувствовать, а потом – исчезни!
Вот и последний кусочек – ровный ритм, без пауз, просто чистый цикл:
beat = 0
while True:
отрендерить_кадр()
beat += 1
if beat == 60: # один полный цикл бита
beat = 0
# продолжаем цикл, сигнала окончания нет
Просто дай счетчику кадров обнулиться точно в такт, и публика будет в теме, никто и не заметит петлю.
Отличный цикл – держит слушателей в напряжении. Только не забывай иногда давать передышку, а то даже самая заворожённая публика начнёт уставать.