Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 22.06.2007, 12:46   #1
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Вопрос Индексация Списка

Простите, что запостил сюда, но думаю, C# и C++ похожи, а так в болтовне зафлудят всё.

Итак, весь вопрос вот в чем: Как проиндексировать связной список в C#? У меня в цикле идет проверка всех элементов в списке, и у того, что имеет значение жизни равным 0 - удаляется. Все бы ничего, но компилятор сразу же ругается, что мол, список модифицирован, дальнейшие действия не могут быть произведены. Мне нужно его "рефрешить" что ли, вот только как?


Код такой (все довольно просто):
Сначала создаю связной список (статический он для того, что бы я смог добавлять в него элементы с любой части кода )
static LinkedList<Bullet> Bulllist = new LinkedList<Bullet> ( );
Потом в классе делаю private - переменную:
float alpha = 1.0f;
В Методе Update она декрементируется:
public void Update ( )
                {
                x += xspeed;
                y += yspeed;
                alpha -= 0.01f;
                if ( alpha <= 0 ) Bulllist.Remove ( this );
                }
И сообственно, последнее условие и есть то, из-за чего все проблемы Далее в игровом цикле есть вот такое выражение:
foreach ( Bullet i in Bulllist ) { i.Update ( );}
- именно сюда и ругается компилятор. *Ругается, если alpha у i равна 0.
(Offline)
 
Ответить с цитированием
Старый 22.06.2007, 15:26   #2
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Индексация Списка

При удалении элемента может просто изменится порядок элементов, а может вообще все перемешаться во внутренней структуре списка. Нужно заменить foreach на свой аналог, где контролировать удаления. Или надо просто помечать эелементы как удаленные, а потом где-то их удалять (по одному).
(Offline)
 
Ответить с цитированием
Старый 22.06.2007, 15:50   #3
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Индексация Списка

Спасибо, попробую.
(Offline)
 
Ответить с цитированием
Старый 22.06.2007, 16:20   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Индексация Списка

http://www.boolean.name/showthread.php?t=3240
эту тему почитай
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 04.07.2007, 12:30   #5
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Индексация Списка

Спасибо всем, проблема решена. Только частично. Ибо ничего это мне не дало. В общем, скажу как исправить - создавать стек, а не связной список Вот только удалять в реалтайме все равно ни как нельзя.
(Offline)
 
Ответить с цитированием
Старый 04.07.2007, 13:19   #6
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Индексация Списка

Надо было выбирать С++)
(Offline)
 
Ответить с цитированием
Старый 04.07.2007, 13:35   #7
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Индексация Списка

Ничего, до него я тоже добреусь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление списка ArtemkA 2D-программирование 5 10.08.2009 00:32
Lib_medialist - Получение списка медиаформатов, поддерживаемых телефоном odd Библиотеки 2 01.02.2009 14:35
Мнгновенный доступ к элементу списка в Пурике - как? Черный крыс PureBasic 10 08.01.2008 20:45
EntityParent для элемента списка (Type) stone_evil 3D-программирование 10 04.12.2006 09:59
Ссылка на объект списка по его мешу ISKATEL 3D-программирование 2 02.11.2006 02:43


Часовой пояс GMT +4, время: 01:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com