Показать сообщение отдельно
Старый 25.06.2013, 14:46   #3
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Обработка 2d объектов

Сообщение от moka Посмотреть сообщение
Держи число монстров, и итерируй от 0 до этого числа. А не максимальное число монстров.
И провисает не цикл, а логика в цикле.
Мока, вот ты сам и объяснил, почему ты не прав. Провисает не цикл, а логика, которая, как я понял, вся завернута в условие. Т.е. разницы особой не будет, обходить все поле (оно явно не 10^5 на 10^5) или только монстров. Идеологически правильно, спору нет, но автора не спасет.
Судя по всему язык Basic'оподобный, я в них не разбираюсь особо, но должно же там быть что-то типа std::vector или списков из Blitz'a. Лучше их применять, ну и действительно копнуть в логику. Если там самая медленная часть завязана на обработку взаимодействия с игроком, вынести ее в отдельный цикл и обрабатывать только ближайших монстров.
(Offline)
 
Ответить с цитированием