[d / dg / ad / pr / ph] - [au / b / bg / bo / c / di / ew / f / fa / fi / fl / hr / ja / me / mo / mu / n / ne / o / p / pa / r / re / s / sp / t / td / tr / tv / vg / w / wh / wm / wp] - [a / aa / fd / k / m / ma] - [fg / g / gg / h / ho / ls / u / y] - [Главная]

[Назад]
Ответ
(оставьте это поле пустым)
Имя (оставьте это поле пустым)
E-mail
Тема
Комментарий
Файл
Перейти к
Подтверждение обновить captcha
Пароль (чтобы удалить пост или файл)
  • Разрешённые типы файлов: GIF, JPG, PNG
  • Максимальный размер файла 1536 килобайт и 2048×2048.
  • Изображения размером более 200x200 точек будут уменьшены.

Файл: 1247667153386.jpg -(9кб, 208x259) Показана уменьшенная копия, оригинал по клику.
9 №1874  

Кодач !
Я хочу написать игру в жанре Roguelike на паскале.
В процессе написания возникла проблема, суть такова :
Мне нужно, чтобы при нажатии на конкретную клавишу происходило определенное действие, например герой двигался вправо, использую функции keypressed и readkey.
Вот примерный код программы :
program test;
uses crt;
var
c:char;
begin
if keypressed then c:=readkey;
case c of
'd': writeln('sup /b/');
end;
readln;
end.
По идее, при нажатии клавиши, если эта клавиша d, должно
появлятся сообщение, но этого не происходит. ЧЯДНТ ?
стутент 2 курса быдлоколледжа.

>> №1875  

С такими вопросами лет через 10, может, напишешь, лол.

>> №1876  

>>1875
лучше поздно, чем никогда.

>> №1877  

>>1874
keypressed не ждет нажатия клавиши. Если ничего не нажато, она сразу возвращает управление. Надо делать как-то так:
begin
repeat
if keypressed then c:=readkey;
case c of
'd': writeln('sup /b/');
end;
until c=; {ESC}
readln;
end.

>> №1878  

>>1877
ололо, вместо квадратика должно быть 

>> №1879  
Файл: 1247668446689.png -(1кб, 93x41) Показана уменьшенная копия, оригинал по клику.
1

>>1878
Ах ты ж ебаный ты нахуй, пикрелейтед, короче.

>> №1880  

>>1877
Код не работает. При нажатии на Esc ничего не происходит.

>> №1881  

>>1880
блджад, происходит.
my bad.

>> №1882  

Да ну нахуй, очередной косяк вакабы? 

>> №1883  

‮ А так?

>> №1884  

>>1882
Похоже на то. сейчас похенкаем ололо

>> №1885  

>>1877
А как можно это сделать без цикла, т.е. нажал клавишу -
получил результат, может процедурой как-то ( я предполагаю опять же).

>> №1886  

>>1885
ну дык убери keypressed и используй просто c:=readkey

>> №1888  

>>1886
тогда программа будет ждать, что бы я нажал клавишу,
а нужно, что бы в любой момент ( хоть посередь программы)
выполнялось намеченное действие.

>> №1889  

>>1888
Либо делай цикл, либо пиши обработчик прерываний клавиатуры.

>> №1890  

>>1884
Хотя нет, не похенкаем, похоже

>> №1891  

>>1889
Мне подходит второй вариант. Посоветуй, что почитать на эту тему.

>> №1892  

Возможно я чего-то не понимаю, но по-моему ОПу нужна многопоточность.
Не знаю как реализовано в паскале.

>> №1893  

>>1891
На самом деле, для игры этот не лучший вариант. Но если уж так хочется, то вот: http://rghost.ru/349654
Читай
@
Экспериментируй

>> №1894  

>>1892
В досе многопоточности нет.

>> №1895  

>>1893
что это ?

>> №1896  

>>1894 а ёба
ОП трушен (я залуркал roguelike).

Я себе представляю это одним здоровым циклом, который и нажатия перехватывает и картинку обновляет.

>> №1898  

>>1896

> который и нажатия перехватывает

в чем, собственно, и проблема.

>> №1899  

>>1895
Гипертекстовый справочник по фунциям мсдос и биоса, портам железа и прочему. Полезная штука.
Обработчики прерываний устанавливаются процедурой SetIntVec, но, если ты этим никогда не занимался, то.. нихуя ты не напишешь
Все через это проходили.

>> №1901  

>>1899

>Все через это проходили.

Я имею ввиду затею с супер игрой. Когда ничего не умеешь — хочется сделать что-то охуенное, а как только научишься — так сразу неохота, и вроде не нужно уже.

>> №1902  

>>1898
while true do
begin
if keypressed then c:=readkey;
case c of
....
end;
//bla bla bla
//обновляем картинку
end;

разве нет?

>> №1903  

>>1899

>но, если ты этим никогда не занимался

Ну это пока.

>> №1904  

>>1902
нет, программа не должна ждать нажатия клавиши, а должна
работать по своей схеме.

>> №1905  
>ОП трушен

Да нихуя он не трушен. Он просто кроме досовского паскаля нихуя не знает, и его творческие порывы утухнут сразу же, как только он поймет, какое дерьмо ему предстоит. Я гарантирую.

>> №1906  

>>1901

>затею с супер игрой

Игра - просто пример, лично мне знание языка важнее.
Ведь такая ситуация может возникнуть в любой программе.

>> №1907  

>>1905

>Он просто кроме досовского паскаля нихуя не знает

Ну да, ты прав. смотри конец первого поста.

>> №1908  

>>1906
Если нужно знание языка — читай справку (ctrl+F1) и книги. Лично я учился по этой http://depositfiles.com/ru/files/ssjuetucm

>> №1909  

>>1908

>читай справку (ctrl+F1) и книги

действительно.

>> №1910  

тыбе определённо нада соснуть тунца и всё пойдёт как гласил Ленин: "Вперёд и только вперёд! и не смотреть назад, пэтух!"

>> №1912  

>>1910
ололо ололо ! к нам приехал трололо !!11

>> №1946  

Я просто оставлю это здесь
http://roguebasin.roguelikedevelopment.org/index.php?title=RogueLike_Engines

>> №2038  



>> №2200  

Я просто оставлю это здесь:
http://roguebasin.roguelikedevelopment.org/index.php?title=FreePascal



Удалить пост []
Пароль
[d / dg / ad / pr / ph] - [au / b / bg / bo / c / di / ew / f / fa / fi / fl / hr / ja / me / mo / mu / n / ne / o / p / pa / r / re / s / sp / t / td / tr / tv / vg / w / wh / wm / wp] - [a / aa / fd / k / m / ma] - [fg / g / gg / h / ho / ls / u / y] - [Главная]