![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
Рамирос |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 4.2.2010 Репутация: -2 Всего: -3 |
У меня такой вопрос, мне нада двигать по екране одновременно неизвестное, заранее, количество фигурок. Я непойму как ето можно сделать, ведь цыклы в методе paint() не доступны!
Допустим, нада двигать 100 картинок, еси я их буду в цыкле треда перещитывать а в методе paint токо рисовать один из них, то одновременно они лвигаться небудут, да ещо и пока пройдёт время с первого по 100, то ето вообще будет гон. Какже заставить двигвться НЕИЗВЕСТНОЕ количество картинок ОДНОВРЕМЕННО????? Добавлено через 7 минут и 9 секунд Я кажись понял, для етого нужен флаг! Когда все картинки передвинулись - поднимать флаг перерисовки, а перед передвижение картинок проверять флаг перерисовки, опущен ли? Правельно? |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Нет. Не правильно.
Правильный ответ - читать книги. Ты можешь и в paint-e двигать, никто тебе не запретит. Но правильнее, двигать картинки, скажем в методе run, когда все передвинуты картинки - вызывать перерисовку. Так как передвижение картинки (если все правильно сделано), это всего лишь изменение двух величин int x и int y - (положение по X, и по Y), картинок всего 100, тогда нужно изменить 200 значение - т.е. время "сдвига" картинки практически нулевое. Основное время будет занимать перерисовка этих картинок. Что-нибудь типа такого:
То что про флаги ты написал - может и правИльно, а может и нет. Нужно видеть код. А зачем вообще поднимать какой-то флаг для перерисовки? Метод repaint() - это фактически и есть флаг перерисовки. repaint() = хочу_чтобы_вызвалась_перерисовка_экрана |
|||
|
||||
Рамирос |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 4.2.2010 Репутация: -2 Всего: -3 |
чтото вы нащот перерисовки в треде и цикла в пеинте - ошибаетесь, ето ошибка так как вы, eugine_s, написали, наверное!
Это сообщение отредактировал(а) Рамирос - 17.2.2010, 00:09 |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
eugine_s все написал верно! в потоке идет присвоение координат! потом, после этого, перерисовываются все картинки, идет рендер картинок на экран! paint их рисует! поток присваивает им координаты и далее вызывает рендер их, в гугле немеряно объяснений и кода! -------------------- iOS developer |
|||
|
||||
Рамирос |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 4.2.2010 Репутация: -2 Всего: -3 |
WOLF, а что я такого сделал, вродебы вопрос нормальный!, а какие тогда, например. темы создавать?
И ето, когда я ставлю в методе run - repaint();, то выходит ошибка, repaint воспринимается как какойто метод, который нада ещо написать. Что ет может значит? И про цыкл в пеинте - тожесамое!! И ето. можно я создам 1 тему и там буду задавать разные вопросы, кто захочет - будет мне помогать, подсказывать? только однутему! Да и ещо, какая конструкцыя быстрее: if, или switch? Это сообщение отредактировал(а) Рамирос - 17.2.2010, 15:55 |
|||
|
||||
W0LF |
|
||||||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
в папке WTK есть стандартные примеры! там есть змейка, например, ну возьми ты и посмотри код! ты задаешь очень простые вопросы и очень глупые, на которые ответ можешь найти сам!
НЕТ! Есть правила! вот там есть такое -
это уже лучше вопрос, НО - 1. Этот вопрос не касается j2me, это общая java, не в этой ветке нужно его спрашивать! 2. Ты создал топик это с другим вопросом, этот здесь уже задавать нельзя! 3. Ты можешь сам найти ответ на свой вопрос, сделав две конструкции switch-case и if-else, и прогнать их в цикле например 1000 раз, и посмотреть сколько будет занимать одна времени и сколько другая и сам ответить на свой вопрос. -------------------- iOS developer |
||||||||
|
|||||||||
Рамирос |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 4.2.2010 Репутация: -2 Всего: -3 |
Ну теперь понял)))))
Добавлено через 46 секунд Ну теперь понял))))) Добавлено через 1 минуту и 22 секунды Ну теперь понял))))) |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: нет Всего: 75 |
W0LF, Насколько мне известно, в J2SE за счет динамической компиляции и некоторых других причин микротесты производительности показывают все что угодно, вплоть до погоды. Написать тест, который даст объективный результат довольно сложно. В ME все по-другому? заранее спасибо. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
jk1, значит я, скорее всего, не прав. а j2me этот тот же j2se, только урезанный. Так что все идентично будет.
тогда мое мнение такое - использовать switch-case для конкретных значений, if-else для диапазонов. Это сообщение отредактировал(а) W0LF - 18.2.2010, 20:02 -------------------- iOS developer |
|||
|
||||
Рамирос |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 4.2.2010 Репутация: -2 Всего: -3 |
логично, но кто его знает))))))))
|
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |