![]() |
![]() ![]() |
![]() |
1234 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Кто знает, как создать подпрграмму по созданию задержки(скажем в 1 секунду). Так, например, в игре она необходима для того, чтобы объект с определённой скорстью совершал движение. Cпасибо за внимание.
|
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Delay(ms: Word); -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
1234 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Да, но в моей программе данная проедура не вкатывает:нужно конкретно задержка в 1 секунду. Не всё так просто
|
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата проедура не вкатывает Ну если не вкатывает то это совсем другое дело, {$TELEPATHY ON} ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
1234 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Необходимо использовать процедуру GetTime. Кстати, какую посоветуете подобрать менюшку(самую простую).
Сообщение отредактировано: 1234 - |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Зачем ты для организации паузы хочешь использовать процедуру, возвращающую системное время - непонятно... Я не говорю, что это невозможно, в принципе, можно и извратиться, например, так:
curr_time := GetTime;( реализация функции GetTime - здесь: Quicksort ) Только нужно ли это? ![]() |
TarasBer |
![]()
Сообщение
#7
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кто знает, как создать подпрграмму по созданию задержки(скажем в 1 секунду). Так, например, в игре она необходима для того, чтобы объект с определённой скорстью совершал движение. Cпасибо за внимание. Итак: НИКАКОГО GetTime! Никаких лишних модулей! Делаем быстро, ёмко и эффективно. В разделе переменных пишем:
Итак, мы завели 2 переменные: Time - это количество 55милисекундных интервалов, прошедших с полуночи (точнее: один такой интервал по времени - это $10000/$1234DC секунд). Значение переменной Time присваивается автоматически железом, потому что она расположена точно по адресу системного времени. А мы можем спокойно её считывать. Можно, конечно, не заводить вообще этой переменной, и вместо Time писать каждый раз MemL[$0040: $006C], но так по-моему лучше. Далее, переменная T - вспомогательная. Если надо, чтобы программа поворяла один и тот же цикл, делая в каждом цикле задержку 55 млс, то в каждом цикле пишем:
причём это T должно использоваться ТОЛЬКО в этом участке кода: иначе программа полетит с неимоверной скоростью. А задержка в одну секунду (приблизительно) делается так:
Это будет задержка не совсем точно в 1сек, но бОльшей точности на Павкале не достичь. Также с помощью Time можно мерять время. -------------------- |
klem4 |
![]()
Сообщение
#8
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Хотелось бы услышать от автора, по какой причине нельзя использовать Delay(1000) ?
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
TarasBer,
Цитата Итак: НИКАКОГО GetTime! А давай, ТЫ не будешь решать за автора, что ему ДА использовать, а что - НЕТ, договорились? А то слишком самоуверенно получается, вроде как ДО тебя об этом не знали, а ты пришел, и всех научил... Да, кстати, в том, что ты привел, есть одно маленькое НО, которое моментально превращается в ОГРОМНОЕ - ты не знаешь, какой компилятор используется... Попробуй написать программу, работающую по ТВОЕМУ алгоритму, и скомпилировать ее в FPC, например... Получится?Никаких лишних модулей! А раздел, я бы хотел напомнить, НЕ чисто Паскалевский, так что решение должно быть по крайней мере переносимо, а не рассчитано ТОЛЬКО на Турбо Паскаль... |
TarasBer |
![]()
Сообщение
#10
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хотелось бы услышать от автора, по какой причине нельзя использовать Delay(1000) ? Причина в том, что задержка очень сильно зависит от компьютера. У меня, например, этот делэй даёт отнюдь не секунду, а намного меньше. Цитата А давай, ТЫ не будешь решать за автора, что ему ДА использовать, а что - НЕТ, договорились? А то слишком самоуверенно получается, вроде как ДО тебя об этом не знали, а ты пришел, и всех научил... Да, кстати, в том, что ты привел, есть одно маленькое НО, которое моментально превращается в ОГРОМНОЕ - ты не знаешь, какой компилятор используется... Попробуй написать программу, работающую по ТВОЕМУ алгоритму, и скомпилировать ее в FPC, например... Получится? А раздел, я бы хотел напомнить, НЕ чисто Паскалевский, так что решение должно быть по крайней мере переносимо, а не рассчитано ТОЛЬКО на Турбо Паскаль... Я на ТЫ не обращался ни к кому... Хамите, молодой человек... Да, такой метод пригоден только для досовского паскаля. Если у автора темы именно турбо паскаль, то я всё правильно сказал. Если нет - то извините. -------------------- |
klem4 |
![]()
Сообщение
#11
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Я на ТЫ не обращался ни к кому Боюсь тебя огорчить, но это интернет, а не деловая встреча ... Цитата Причина в том, что задержка очень сильно зависит от компьютера. У меня, например, этот делэй даёт отнюдь не секунду, а намного меньше. Ну так можно сделать параметр Delay переменной (в разных местах с разными коэффициентами) и позволить пользователю изменять значение этой переменной дабы настроить программу ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
TarasBer |
![]()
Сообщение
#12
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Боюсь тебя огорчить, но это интернет, а не деловая встреча ... Ну так можно сделать параметр Delay переменной (в разных местах с разными коэффициентами) и позволить пользователю изменять значение этой переменной дабы настроить программу ... В таком случае предлагаю такой вариант:
Естественно, выключив оптимизацию. Даже без цээртэ обошлись. Параметр ms пусть каждый сам подбирает... Всё-таки Delay это несерьёзно. Надо смотреть на время. В Паскале для это есть обращение к конкретному адресу, а в дельфе есть функция Time возвращающая значение типа double, причём единица - это 1 год. И меняется это значение чуть ли не каждую тысячную долю секунды (винда такты считает что ли?) -------------------- |
Altair |
![]()
Сообщение
#13
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата И меняется это значение чуть ли не каждую тысячную долю секунды (винда такты считает что ли?) Системный таймер наверно... -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
1234 |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Хорошо. Здесь вроде бы понятно. Спасибо за советы. А что насчёт менюшки.
|
TarasBer |
![]()
Сообщение
#15
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хорошо. Здесь вроде бы понятно. Спасибо за советы. А что насчёт менюшки. На такой вопрос могу ответить только вопросом. Что вы называете менюшкой? Если полноценный интерфейс, то: в чём вы пишете? Если в дельфе, то там менюшку без проблем сделать. Паскаль - если программа будет в текстовом режиме - то турбо вижн есть (сам с ним никогда не работал, если честно). А для графического режима... Я, когда мне понадобилось, сам руками всё писал. Довольно увлекательно, между прочим. А если примитивную менюшку, то не знаю... Ну по центру просто выводишь несколько строчек, и одна из них обведена прямоугольником. А стрелочки прямоугольник двигают. И ентер выбирает то, что нужно. Могу кусок кода написать, если попросите. -------------------- |
klem4 |
![]()
Сообщение
#16
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата А что насчёт менюшки Поиск -> menu Выкладывались и текстовые и графические версии -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Цитата(1234) А что насчёт менюшки. Смотри в поиске, вот здесь: Меню в Паскале или здесь: http://volvo71.narod.ru/menus.htm Цитата(TarasBer) Могу кусок кода написать, если попросите. ![]() |
1234 |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 38 Пол: Мужской Реальное имя: 1234 Репутация: ![]() ![]() ![]() |
Из любезно предоставленного списка(спасибо volvo) меня более других заинтересовало меню во фрейме(из одноимённого раздела) по кодовым словом asd. Остаётся вопрос: как можно выбирать стрелками "вверх" и "вниз" нужный раздел(прчём, чтобы он высвечивался).
|
volvo |
![]()
Сообщение
#19
|
Гость ![]() |
Цитата как можно выбирать стрелками "вверх" и "вниз" нужный раздел (прчём, чтобы он высвечивался) Если ты внимательно читал информацию по приведенным ссылкам, то там (везде, кстати) есть как раз то, что нужно - как ждать нажатия клавиши, как выбирать цвет активной/неактивной строки, и все остальное... Отрисовал то, что тебе очень уж понравилось, и после вызова Bar3D начинай цикл обработки клавиатуры (вместо трех OutTextXY)...Меню - это такое неблагодарное дело, которое никто от начала и до конца ЗА ТЕБЯ делать не будет, ибо то, что нравится тебе не вызывает у меня ничего, кроме стремления поберечь глаза и закрыть быстро эту программу... Так что... Набросок у тебя есть (и не один, а целых 4) - дорабатывай... Будут КОНКРЕТНЫЕ вопросы - приходи... А то ты уже и так отклонился от темы топика (не забыл, для чего она создавалась?) - не про меню она была, не надо делать из темы бардак... |
Тём@ |
![]()
Сообщение
#20
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Мужской Реальное имя: Тимур Репутация: ![]() ![]() ![]() |
Не знаю нужно ли это ещё. Когда-то написал для задержки на определённое время. Не идеально конечно... Попробуйте
![]() Правила Форума (пункт 10) - архив не содержащий исходников удален... Сообщение отредактировано: volvo - |
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 18:00 |