1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Графика, отрисовка, клавиатура, Как совместить непрерывность отрисовки с управлением с клавиатуры?
Есть программа, делающа непрерывную отрисовку с помощью repeat. Если используется структура
....
repeat
....
until Keypressed;
на экраине идет непрерывная отрисовка, до нажатия любой клавиши. Но если поменять на
....
repeat
....
until Readkey='q';
Программа выходит по нажатию клавиши q, но работает только при нежатии любой другой клавиши(нажал и не отпускаешь). Как совместить непрерывность отрисовки с управлением с клавиатуры?
--------------------
Смысл откроется тебе. Красками играя Жизнь предстанет как поток без конца и края.
В этом мире поройразбиваютсямечты Но чтобы он стал другойВдруг в него приходишь ТЫ...
После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна.
readkey ждет нажатия клавиши, поэтому работа программы приостанавливается. Проще всего организовать примерно так:
repeat
ch := #0; // забываем предшествующее состояние
if keypressed thenbegin
ch := readkey;
case ch of
... // обработка нужных клавиш - изменение состояния
end; //case
end;
DrawScreen; // отрисовка нового состояния с учетом нажатых клавиш и прошедшего времени
until (ch = 'q') or (ch = 'Q'); // заботимся, чтобы работа программы не зависела от состояния Caps Lock
Еще один вопрос. Я сделал-переменные меняются по нажатию клавиши, изменяя параметры отрисовки в непрерывном режиме. Но как вывести текущее значение переменной на экран в режиме Graph?/ Либо как вообще выводятся переменные на экран в этом режиме?
Сообщение отредактировано: Чужак -
--------------------
Смысл откроется тебе. Красками играя Жизнь предстанет как поток без конца и края.
В этом мире поройразбиваютсямечты Но чтобы он стал другойВдруг в него приходишь ТЫ...
После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна.
Переменные или их значения? Значения - переводятся в строку и печатаются (outtext/outtextxy)
Их значения. И все происходит при непрерывной отрисовке на экране. При этом значения переменных меняются с клавиатуры (соответственно меняются параметры отрисовки).
--------------------
Смысл откроется тебе. Красками играя Жизнь предстанет как поток без конца и края.
В этом мире поройразбиваютсямечты Но чтобы он стал другойВдруг в него приходишь ТЫ...
После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна.
to adriano-был по твоей ссылке. Спрайтовая анимация-интересно, но ли это самый простой способ вывести значения переменных на экран в режиме Graph?
Цитата(volvo @ 8.01.2008 23:59)
Переменные или их значения? Значения - переводятся в строку и печатаются (outtext/outtextxy)
Как это сделать? Как значение переменной типа Integer или Real перевести в строку и вывести на экран в ходе цикла (оно ведь меняется при нажатии кнопки)?
Сообщение отредактировано: Чужак -
--------------------
Смысл откроется тебе. Красками играя Жизнь предстанет как поток без конца и края.
В этом мире поройразбиваютсямечты Но чтобы он стал другойВдруг в него приходишь ТЫ...
После странствий и скитаний настают другие времена. Старая волна уходит и приходит новая волна.
Как значение переменной типа Integer или Real перевести в строку и вывести на экран в ходе цикла
Показать кусок кода, что именно у тебя там происходит, КАК собственно меняется значение и КОГДА ты хочешь его выводить (и перестать делать заключение, что вокруг тебя находятся одни телепаты)...
Ну, и посмотреть доки неплохо было бы: Str + F1 получаешь готовую реализацию IntToStr. С вещественными - аналогично...
Показать кусок кода, что именно у тебя там происходит, КАК собственно меняется значение и КОГДА ты хочешь его выводить (и перестать делать заключение, что вокруг тебя находятся одни телепаты)...
Сейчас покажу. В теме "Графика. Двужущаяся точка. Точка совершает колебания" я приводил программу
function IntToStr(i: Longint): String;
var s: string;
begin
Str(i, s);
IntToStr := s;
end;
в конце процедуры Upravlenie делается:
setfillstyle(solidfill, getbkcolor);
bar(...); { тут дашь координаты, чтобы затереть старое значение }
outtextxy(..., IntToStr(r)); { <--- выводишь в том же месте новое значение }
И чем этот способ отличается от приведенного в посте №2? Только наличием безграмотной конструкции keypressed = true? Почему тогда не ((keypressed = true) = true) = true?