Как остановить программу до нажатия любой клавиши "Press any key to continue"?
Я попробовал introloop: if (onkeydown == false) continue introloop;
но это не работает ((( Какэто сделать? превращать программу в функцию обработчика события keydownя не могу так как такая задержка встречается не один раз например после нажатия на паузу появляется предложение press any key to continue |
Программу нельзя просто взять и остановить на любом месте.
Делишь программу на логические блоки - функции, которые вызывают друг друга рождая взаимодействие - программу. Вот между этими самыми вызовами уже можно остановиться - просто не вызывая следующей функции, которую вызвать уже только на событие от пользователя. |
Смысл в том, чтобы игровой цикл останавливался при нажатии на паузу.
Если весь игровой цикл сделать функцией реакции на any key, то это будет неправильно |
В js нет никакого игрового цикла, потому что в js нельзя зафигачить какой-нить sleep.
|
В джаве есть game loop - в инете немало инфы об этом
Как он устроен я разбираюсь. |
Во первых java тут не при чём, а во вторых для js это просто называние утянутое из других языков и к циклам, как конструкциям языка, отношения не имеет. В js у нас события и цепочки событий.
|
В JS есть рекурсия. Вызов функции из нее самой. Это и есть игровой цикл.
Вызов функции по таймеру вроде тоже есть. Можно сделать функцию gameloop, которая вызывает функции элементов игрового мира. |
>В JS есть рекурсия. Вызов функции из нее самой.
Есть. >Это и есть игровой цикл. Нет. Я так полагаю вы начитались уроков по игроделу на js в интернете без малейшего базового понимания js. Это печально. Возов функции через requestAnimationFrame - это не рекурсия и не цикл. AnimationFrame - это тоже событие готовности фрейма и совершенно не обязательно сработает прямо сейчас. Вот в промежуток между одним фремом и другим могут приходить пользовательские события, на которые вам следует реагировать и просто не запрашивать следующий фрейм если нужно остановится. |
Моё восприятие программирование находится на уровне "А как это можно сделать без операторов Goto и Gosub-Return"?
Для меня программа - это цикл, который вызывает подпрограммы. А тут все по-другому.... |
http://isaacsukin.com/news/2015/01/d...ops-and-timing
Тут всё хорошо расписано. В том числе и остановка. |
Часовой пояс GMT +3, время: 03:37. |