[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Форум » Игры серии GTA » Ваши проекты » Experiment (Проводите эксперименты над игрой)
Experiment
wmysterio
Администраторы
Скриптер
10.11.13 03:35
Offline
Цитата BoPoH ()
Но кол-во итераций мы знаем, так как знаем размер массива. Перебирание массива означает поочерёдное чтение/сравнение/запись элементов данного массива. В большинстве случаев кол-во итераций будет равно размеру массива.
С этим согласен, но изначально вопрос ставился не о самом цикле, а о задержке. Ты утверждал, что
Цитата BoPoH ()
В цикле перебора массива не должно быть wait вообще.
Но это не значит, что массив можно перебрать только через цикл for.

BoPoH
Друзья
10.11.13 03:44
Offline
Цитата wmysterio ()
Но это не значит, что массив можно перебрать только через цикл for.

Он перебирал массив из актёров, чтобы выбрать того, на которого целится игрок. И не важно, используешь ты for, while или repeat - ты всё равно больше 50 итераций (в данном конкретном случае) не сделаешь. Вопрос - зачем выполнять по одной итерации за один кадр, если можно выполнить все 50 за один кадр?

wmysterio
Администраторы
Скриптер
10.11.13 03:52
Offline
Цитата BoPoH ()
Он перебирал массив из актёров, чтобы выбрать того, на которого целится игрок. И не важно, используешь ты for, while или repeat - ты всё равно больше 50 итераций (в данном конкретном случае) не сделаешь. Вопрос - зачем выполнять по одной итерации за один кадр, если можно выполнить все 50 за один кадр?
В потоке нет такого понятия как "одновременность". Всё идёт последовательно путём чтения команд.
Цитата BoPoH ()
если можно выполнить все 50 за один кадр?
Ну так покажи пример. Подтверди это утверждение.

BoPoH
Друзья
10.11.13 03:58
Offline
Цитата wmysterio ()
В потоке нет такого понятия как "одновременность". Всё идёт последовательно путём чтения команд.

Я разве где-то упомянул такое понятие, как "одновременность"? Я сказал, что можно выполнить 50 итераций за один цикл выполнения скриптового движка.

Цитата wmysterio ()
Ну так покажи пример. Подтверди это утверждение.

Именно это я и собирался сделать в своей статье, о которой упомянул выше.
А вообще, можешь это сам проверить, использовав свой пример с сотней машин. Только уменьши их кол-во, скажем, до 50-ти.

wmysterio
Администраторы
Скриптер
10.11.13 04:10
Offline
Цитата BoPoH ()
Я разве где-то упомянул такое понятие, как "одновременность"?

Цитата BoPoH ()
то все машины создадутся одновременно.


Хватит нам флудить здесь. Го во флуд или вообще закроем дискуссию.

Vital
Друзья
Скриптер
10.11.13 11:56
Offline
Народ, вот часть кода:
Код
for 0@ = 1 to 50
     if
     $FLAG_ACT[0@] == 1
     then
         if
         gosub @Del_Act2
         then
         048F: actor $ACT[0@] remove_weapons  
         $FLAG_ACT[0@] = 0
         marker.Disable($MARK[0@])
             if
             $PRESS_DEL == 1
             then
             actor.DestroyWithFade($ACT[0@])
             end
         actor.RemoveReferences($ACT[0@])          
         end
     end
end

Здесь задержки нету, возможно, имеется такая проблема из-за того, что в :Del_Act2 есть задержка в 0 мс, попробую убрать её, думаю, сработает, надо проверить это. Про цикл for я знаю, там не может быть зацикливания, потому что известно, сколько мы перебираем элементов (1 to 50)
2109: create_special_actor $VITAL in_front_of_computer

BoPoH
Друзья
10.11.13 13:17
Offline
Цитата Vital ()
Здесь задержки нету, возможно, имеется такая проблема из-за того, что в :Del_Act2 есть задержка в 0 мс

Конечно. Её надо убрать. По крайней мере надо БЫЛО убрать smile
Отредактировал BoPoH - Воскресенье, 10.11.13, 13:17

Форум » Игры серии GTA » Ваши проекты » Experiment (Проводите эксперименты над игрой)
Страница 2 из 2«12
Поиск: