Добавлен
Использую след.конструкцию
globals
integer niju = XXXX
integer rokuju = XXXXXXX
endglobals
Function Lmao takes nothing returns nothing
	local integer i
	
	loop 
	exitwhen i == niju
		...
		i++
	endloop
	
	set i = 0
	
	loop 
	exitwhen i == rokuju
		...
		i++
	endloop
Вызывает лаги, т.к. я использую локалку i дважды для обоих циклов, а вот если я использую другую локалку, нууу, объявляю и использую ее для второго цикла, то уже не лагает. Как сделать так, чтобы не лагали циклы при использовании одной локалки для них всех.

Принятый ответ

LainMikoroso, описаное в вопросе невозможно технически по ряду причин. Более того, каждая новая локальная переменная только увеличивает количество выполняемых процессором команд, что определённо не может увеличивать производительность функции по определению.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
16
26
7 лет назад
16
вы втираете какую то дичь
0
15
7 лет назад
Отредактирован EnergyFrost
0
Дичь или кривые условия в циклах. Ну типа niju или rokuju - отрицательные или очень-очень большие. И я не знаю, как и что там с инициализацией по-умолчанию локалки. (проверять самому лень). Но вообще, по сути должно инициализироваться автоматом нолем
0
14
7 лет назад
0
EnergyFrost:
Дичь или кривые условия в циклах. Ну типа niju или rokuju - отрицательные или очень-очень большие. И я не знаю, как и что там с инициализацией по-умолчанию локалки. (проверять самому лень). Но вообще, по сути должно инициализироваться автоматом нолем
А, лол я забыл дописать, я локалку инициализирую нулем, а глобалки устанавливаются в другом триггере
0
15
7 лет назад
0
LainMikoroso, в первый цикл допиши BJDebugMsg(I2S(niju)), во второй BJDebugMsg(I2S(rokuju )). Вот тебе счастье. Если все нормально выполняется и выходит, значит проблема не в этом куске
0
14
7 лет назад
0
в первый цикл допиши BJDebugMsg(I2S(niju)), во второй BJDebugMsg(I2S(rokuju )). Вот тебе счастье. Если все нормально выполняется и выходит, значит проблема не в этом куске
(Если я использую другую локалку то все работает)
0
15
7 лет назад
0
LainMikoroso, да, точно дичь втираешь. Какие значения у тебя принимают переменные условия цикла?
0
14
7 лет назад
0
да, точно дичь втираешь. Какие значения у тебя принимают переменные условия цикла?
Положительные от 0 и до 10(не более, тестил с 0-2)
0
15
7 лет назад
0
Короче. Вот тебе- проблема не с локалкой, а с условиями (ну если, конечно, пробелма в этих местах). Узнай какое из условий зацикливается и не выходит, и будет тебе счастье
0
14
7 лет назад
0
EnergyFrost:
Короче. Вот тебе- проблема не с локалкой, а с условиями (ну если, конечно, пробелма в этих местах). Узнай какое из условий зацикливается и не выходит, и будет тебе счастье
(Поменял переменную все заработало)
Тебе еще раз повторить?
0
15
7 лет назад
Отредактирован EnergyFrost
0
LainMikoroso, да, пожалуйста. 3 раза. Отладку давай лучше, чем упираться
0
32
7 лет назад
0
LainMikoroso, вот кто так делает?
У вас цикл вовсе не должен запустится, ибо переменная не инициализрованна:
local integer i // необходимо заменить local integer i = 0
Потом есть лимит операций, нужно осторожнее с циклами в которых 100500 итераций.
Просадку фпс вызывает кривой код, предоставьте весь код а не этот пример...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.