|
Основной форум Сюда все проблемы связанные с программированием. |
05.09.2011, 04:03
|
#1
|
AnyKey`щик
Регистрация: 11.08.2011
Сообщений: 8
Написано одно полезное сообщение
|
Параллельные процессы отображения графических элементов?
Параллельные процессы отображения графических элементов?
Уважаемые пользователи Midlet Pascal,
кто сталкивался с задачей одновременно показывать 2 или более анимаций с разными временными интервалами их отображения на экране в режиме showCanvas, протекающие как 2 независимых друг от друга параллельных процесса отображения графики в верхней и нижней частях экрана, отсутствие и присутствие которых, на экране проявляется с разными временными интервалами, требующие частичного очищения экрана на две части с учётом одновременности протекания данных параллельных графических процессов, выполнение которых, не приведёт к очищению всего экрана. Какие для этого есть решения в пределах синтаксиса Midlet Pascal?
С уважением, MidletUser.
|
(Offline)
|
|
05.09.2011, 11:31
|
#2
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 637 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
Сообщение от MidletUser
кто сталкивался с задачей одновременно показывать 2 или более анимаций с разными временными интервалами их отображения на экране в режиме showCanvas, протекающие как 2 независимых друг от друга параллельных процесса отображения графики в верхней и нижней частях экрана, отсутствие и присутствие которых, на экране проявляется с разными временными интервалами, требующие частичного очищения экрана на две части с учётом одновременности протекания данных параллельных графических процессов, выполнение которых, не приведёт к очищению всего экрана.
|
Супер конструкция, я долго осиливал. Тебе бы юридические речи писать
По теме: не знаю, как это реализовать в Midlet Pascal, но в Java можно бы было использовать 2 буферных картинки размером в пол-экрана (или по сколько тебе там нужно). И соответственно, перерисовывать в нужный момент то верхнюю, то нижнюю часть.
public void paint(Graphics g) {
if (needRepaintTop)
g.drawImage(topBuffer, 0, 0, 0);
if (needRepaintBottom)
g.drawImage(bottomBuffer, 0, scrH, Graphics.LEFT | Graphics.BOTTOM);
needRepaintTop = false;
needRepaintBottom = false;
}
|
(Offline)
|
|
05.09.2011, 14:01
|
#3
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
MidletUser, такую технологию на мп еще никто не писал. Флаг тебе в руки
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
05.09.2011, 20:53
|
#4
|
Знающий
Регистрация: 21.07.2009
Адрес: Украина
Сообщений: 219
Написано 44 полезных сообщений (для 78 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
|
(Offline)
|
|
06.09.2011, 02:11
|
#5
|
ПроЭктировщик
Регистрация: 22.10.2010
Сообщений: 196
Написано 16 полезных сообщений (для 30 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
DIMMON4IK, надеюсь ты знаешь последствия вывода граффики в разных потоках. Но походу не знаешь раз предлагаешь
__________________
Для меня нет ничего не реального в кодинге, но мне лень
gainOS - прорыв в проектировании ОС на MIDlet Pascal
|
(Offline)
|
|
06.09.2011, 12:56
|
#6
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
procedure setClip(int x, int y, int width, int height);
Устанавливает регион, на который в дальнейшем влияют процедуры рисования.
|
Это из справки.
Параллельные процессы точно нужны? Можно написать две функции, каждая почти "процесс", запускать их поочерёдно .
Переменные сделать глобальными. Если очень хочется, можно создать тип record=first - где будут переменные для первого процесса и похожий тип для второго.
type
First=record
a,b:integer;
end;
Second=record
t:integer;
end;
procedure process1;
begin
setClip(0,0,x,y);
DrawЧтоНибудь(first.a,first.b);
end;
procedure process2;
begin
if GetRelativeTimeMS-second.t>100 then
begin
second.t:=GetRelativeTimeMS
setClip(x,y,getwidth,getHeight)
DrawЕщёЧтоНибудь;
end;
end;
repeat
process1;
process2;
repaint;
until false;
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
09.09.2011, 00:03
|
#7
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Параллельные процессы отображения графических элементов?
Сообщение от MidletUser
Параллельные процессы отображения графических элементов?
Уважаемые пользователи Midlet Pascal,
кто сталкивался с задачей одновременно показывать 2 или более анимаций с разными временными интервалами их отображения на экране в режиме showCanvas, протекающие как 2 независимых друг от друга параллельных процесса отображения графики в верхней и нижней частях экрана, отсутствие и присутствие которых, на экране проявляется с разными временными интервалами, требующие частичного очищения экрана на две части с учётом одновременности протекания данных параллельных графических процессов, выполнение которых, не приведёт к очищению всего экрана. Какие для этого есть решения в пределах синтаксиса Midlet Pascal?
С уважением, MidletUser.
|
Для чего вообще параллельные процессы? Зачем такое шаманство? Почему не ввести 2 переменные-счетчика (например, period_one и period_two), которые перед каждой перерисовки графики будут приращиваться на 1. Когда "счетчики" достигнут определенного значения (для каждого свой), сбросить соответствующий счетчик и прорисовать нужный кадр.
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:54.
|