Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с удалением из массива, проблемы с удалением из массива 
:(
    Опции темы
yakov
Дата 6.7.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Имеется a_Class extends Sprite, который объявлен в b_Class таким образом: public a_Class a[];
В этот массив a[] поместил 7 спрайтов. Делаю удаление из массива, напр., таким образом a[3]=null; 
Ожидал, что a.length станет 6, но  a.length остается всегда 7. Как сделать, чтобы длина a.length стала 6. 
Или кто подскажет другой метод удаления из массива в j2me?

Заранее благодарен.
PM MAIL   Вверх
eugine_s
Дата 6.7.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(yakov @  6.7.2009,  16:07 Найти цитируемый пост)
Или кто подскажет другой метод удаления из массива в j2me?


J2ME тут имеет самое малое отношение. Вам бы просто j2se почитать. 


Чтобы удалить полностью (изменить размер массива) - нужно пересоздать массив и потом скопировать в него нужные элементы. 
Я думаю, что для вас это не очень простое занятие (хотя для "попрактиковаться" самое оно), поэтому рекомендую заглянуть в класса Vector, который все сделает сам.

И не забываем про явное приведение типов:

Код

Vector v;
....

Object obj = v.get(i);  // возвращает тип Object

if (obj instanceof a_Class) {
a_Class sprite = (a_Class) obj;
}


если точно знаешь, что в вектор добавляешь классы только одного типа, тогда можно сократить чуть-чуть: 

Код

Object obj = v.get(i);  // возвращает тип Object
a_Class sprite = (a_Class) obj;

PM MAIL   Вверх
yakov
Дата 9.7.2009, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.12.2008

Репутация: нет
Всего: нет



Да трудно будет. Я любитель. Хоббист.
Когда делал клон кликомании не смог решить эту проблему. И выбрал такой путь:
- из массивов спрайты не удалять;
- просто убирать из экрана LayerManager.remove(a[i]);
- в a_Class добавил переменные row,col;
- цикл for проверяет значения row и col, а не порядок расположения в массивах;
- массивы сохраняются целыми до конца игры, в конце a=null;
Игра работает исправно. Но как ведет себя на мобильниках не знаю. Выставлялся на ввв.мобилератед.ком, но игра не затронула души пользователей. Не было отзывов. И там не показывают количество скачиваний.
Кому интересно, можете посмотреть www.myexpo.narod.ru
 smile 
PM MAIL   Вверх
math64
Дата 9.7.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Можно спрайты и не удалять, просто делать sprite.setVisible(false);
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.