Кодач ! Я хочу написать игру в жанре Roguelike на паскале.В процессе написания возникла проблема, суть такова :Мне нужно, чтобы при нажатии на конкретную клавишу происходило определенное действие, например герой двигался вправо, использую функции keypressed и readkey.Вот примерный код программы :program test;uses crt;varc:char;beginif keypressed then c:=readkey;case c of'd': writeln('sup /b/'); end;readln;end. По идее, при нажатии клавиши, если эта клавиша d, должнопоявлятся сообщение, но этого не происходит. ЧЯДНТ ? стутент 2 курса быдлоколледжа.
С такими вопросами лет через 10, может, напишешь, лол.
>>1875 лучше поздно, чем никогда.
>>1874keypressed не ждет нажатия клавиши. Если ничего не нажато, она сразу возвращает управление. Надо делать как-то так:beginrepeatif keypressed then c:=readkey;case c of'd': writeln('sup /b/'); end;until c=; {ESC}readln;end.
begin
repeat
if keypressed then c:=readkey;
case c of
'd': writeln('sup /b/');
end;
until c=; {ESC}
readln;
end.
>>1877ололо, вместо квадратика должно быть
>>1878Ах ты ж ебаный ты нахуй, пикрелейтед, короче.
>>1877 Код не работает. При нажатии на Esc ничего не происходит.
>>1880 блджад, происходит. my bad.
Да ну нахуй, очередной косяк вакабы?
А так?
>>1882Похоже на то. сейчас похенкаем ололо
>>1877 А как можно это сделать без цикла, т.е. нажал клавишу - получил результат, может процедурой как-то ( я предполагаю опять же).
>>1885ну дык убери keypressed и используй просто c:=readkey
>>1886 тогда программа будет ждать, что бы я нажал клавишу,а нужно, что бы в любой момент ( хоть посередь программы)выполнялось намеченное действие.
>>1888Либо делай цикл, либо пиши обработчик прерываний клавиатуры.
>>1884Хотя нет, не похенкаем, похоже
>>1889 Мне подходит второй вариант. Посоветуй, что почитать на эту тему.
Возможно я чего-то не понимаю, но по-моему ОПу нужна многопоточность.Не знаю как реализовано в паскале.
>>1891На самом деле, для игры этот не лучший вариант. Но если уж так хочется, то вот: http://rghost.ru/349654Читай@Экспериментируй
>>1892В досе многопоточности нет.
>>1893 что это ?
>>1894 а ёбаОП трушен (я залуркал roguelike).Я себе представляю это одним здоровым циклом, который и нажатия перехватывает и картинку обновляет.
>>1894 а ёбаОП трушен (я залуркал roguelike).
Я себе представляю это одним здоровым циклом, который и нажатия перехватывает и картинку обновляет.
>>1896 > который и нажатия перехватывает в чем, собственно, и проблема.
>>1896
> который и нажатия перехватывает
в чем, собственно, и проблема.
>>1895Гипертекстовый справочник по фунциям мсдос и биоса, портам железа и прочему. Полезная штука.Обработчики прерываний устанавливаются процедурой SetIntVec, но, если ты этим никогда не занимался, то.. нихуя ты не напишешьВсе через это проходили.
>>1899>Все через это проходили.Я имею ввиду затею с супер игрой. Когда ничего не умеешь — хочется сделать что-то охуенное, а как только научишься — так сразу неохота, и вроде не нужно уже.
>>1899
>Все через это проходили.
Я имею ввиду затею с супер игрой. Когда ничего не умеешь — хочется сделать что-то охуенное, а как только научишься — так сразу неохота, и вроде не нужно уже.
>>1898while true dobeginif keypressed then c:=readkey;case c of....end;//bla bla bla//обновляем картинкуend;разве нет?
>>1898while true dobeginif keypressed then c:=readkey;case c of....end;//bla bla bla//обновляем картинкуend;
разве нет?
>>1899 >но, если ты этим никогда не занималсяНу это пока.
>но, если ты этим никогда не занимался
Ну это пока.
>>1902 нет, программа не должна ждать нажатия клавиши, а должнаработать по своей схеме.
>ОП трушенДа нихуя он не трушен. Он просто кроме досовского паскаля нихуя не знает, и его творческие порывы утухнут сразу же, как только он поймет, какое дерьмо ему предстоит. Я гарантирую.
>ОП трушен
Да нихуя он не трушен. Он просто кроме досовского паскаля нихуя не знает, и его творческие порывы утухнут сразу же, как только он поймет, какое дерьмо ему предстоит. Я гарантирую.
>>1901 >затею с супер игройИгра - просто пример, лично мне знание языка важнее.Ведь такая ситуация может возникнуть в любой программе.
>>1901
>затею с супер игрой
Игра - просто пример, лично мне знание языка важнее.Ведь такая ситуация может возникнуть в любой программе.
>>1905 >Он просто кроме досовского паскаля нихуя не знаетНу да, ты прав. смотри конец первого поста.
>>1905
>Он просто кроме досовского паскаля нихуя не знает
Ну да, ты прав. смотри конец первого поста.
>>1906Если нужно знание языка — читай справку (ctrl+F1) и книги. Лично я учился по этой http://depositfiles.com/ru/files/ssjuetucm
>>1908 >читай справку (ctrl+F1) и книгидействительно.
>>1908
>читай справку (ctrl+F1) и книги
действительно.
тыбе определённо нада соснуть тунца и всё пойдёт как гласил Ленин: "Вперёд и только вперёд! и не смотреть назад, пэтух!"
>>1910 ололо ололо ! к нам приехал трололо !!11
Я просто оставлю это здесьhttp://roguebasin.roguelikedevelopment.org/index.php?title=RogueLike_Engines
Я просто оставлю это здесь:http://roguebasin.roguelikedevelopment.org/index.php?title=FreePascal
- wakaba 3.0.8 + futaba + futallaby -