Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2009, 14:28   #11
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Код:
for i:= ObjectList.count - 1 downto 0 do
Будет лучше чем while
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 29.08.2009, 14:30   #12
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Ну во всяком случае после удаление элемента его индекс займет другой элемент, который тоже требует внимания, то есть нада повтроить цикл еще раз. Насколько я знаю for менять свою i не разрешает
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 29.08.2009, 14:35   #13
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Цитата:
Сообщение от 0nni Посмотреть сообщение
Код:
for i:= ObjectList.count - 1 downto 0 do
Будет лучше чем while
И чем же? While .. do самое то в данном случае. Можно ещё конечно заюзать repeat..until, ну а смысл?
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось russian-stalker; 29.08.2009 в 14:39.
russian-stalker вне форума Ответить с цитированием
Старый 29.08.2009, 14:46   #14
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Цитата:
Сообщение от russian-stalker Посмотреть сообщение
И чем же? While .. do самое то в данном случае. Можно ещё конечно заюзать repeat..until.
Удаление пустых строк
Код:
For i := Memo1.Lines.Count - 1 downto 0 do
 if  Memo1.Lines[i] = '' then Memo1.Lines.Delete(i);
Проще и понятнее не правда ли? И не получится что ты случайно неправильно изменишь "i".
While..do и Repeat..until следует применять когда число число похождений цикла неизвестно.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 29.08.2009, 15:12   #15
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

И кто это вам такое сказал?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 29.08.2009, 15:38   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

на уровне асма разница есть.

Цитата:
И кто это вам такое сказал?
да как бы так и есть...но это по удобству, поидее, можете вообще про фор забыть если хотите
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.08.2009, 16:07   #17
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Чтобы цикл с перебором списка всегда работал правильно, лучше использовать While-структуру. В отличие от For-цикла, While позволяет изменить свой счет, динамически заменить первоначальное условие.

Код:
  i := 0;
  ObjLC := ObjectList.count - 1;

  While i <= ObjLC do
    Begin

      ...

      If Bullet.x > 350 then
        Begin
           ObjectList.Delete(i);
        end;
      // переназначим счет
      ObjLC := ObjectList.count - 1;
      Inc(i);
    end;
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 30.08.2009, 10:15   #18
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код со While действительно классно работает для данной задачи,
у меня теперь другая проблема если пули установить большую скорость
то она раздваивается вот так:

как решить данную проблему?
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация скриптов в игре. Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 135 09.08.2009 06:43
Автоматизация в игре axumac Свободное общение 3 22.01.2009 20:37
Звуки к игре Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 07.09.2008 23:40
OnMouseDown в игре. Titan123 Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 29.07.2008 13:10
Препятствия в игре. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.06.2008 14:14