×
Меню
Индекс

MSFD Условия While

While ( condition )
; что-то делать
EndWhile
 
Команда while отличается от if тем, что она повторяется в течение одного фрейма, пока условие не будет выполнено.
 
Вот хороший пример:
Short desiredAmnt
 
SetStrength 0
while( GetStrength < desiredAmnt ) ; переменная для совпадения
  modStrength 1
endwhile
 
Это установит значение силы равным значению desiredAmnt за один фрейм.
Следующий скрипт сделает это за неизвестное количество фреймов, потому что скрипт вызывается каждый фрейм:
 
if ( getStrength < desiredAmnt ) ; переменная для совпадения
  modStrength 1
endif
С другой стороны, из-за первого примера компьютер может повиснуть на некоторое время (если значение велико), а из-за второго нетВообще, я бы отсоветовал вам пользоваться while. Компьютер действительно «повисает», что чрезвычайно непрятно. Лучше пользоваться вторым примером. (Прим. Gwathlobal).
Заметьте, что этим можно обойти некоторые функции, которые не принимают переменные как параметры.