|
03.01.2018, 11:40
|
Новичок на форуме
|
|
Регистрация: 03.01.2018
Сообщений: 6
|
|
Как остановить программу до нажатия любой клавиши "Press any key to continue"?
Я попробовал introloop: if (onkeydown == false) continue introloop;
но это не работает (((
Какэто сделать?
превращать программу в функцию обработчика события keydownя не могу так как такая задержка встречается не один раз
например после нажатия на паузу появляется предложение press any key to continue
|
|
03.01.2018, 14:42
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Программу нельзя просто взять и остановить на любом месте.
Делишь программу на логические блоки - функции, которые вызывают друг друга рождая взаимодействие - программу. Вот между этими самыми вызовами уже можно остановиться - просто не вызывая следующей функции, которую вызвать уже только на событие от пользователя.
__________________
29375, 35
|
|
03.01.2018, 15:26
|
Новичок на форуме
|
|
Регистрация: 03.01.2018
Сообщений: 6
|
|
Смысл в том, чтобы игровой цикл останавливался при нажатии на паузу.
Если весь игровой цикл сделать функцией реакции на any key, то это будет неправильно
|
|
03.01.2018, 15:34
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
В js нет никакого игрового цикла, потому что в js нельзя зафигачить какой-нить sleep.
__________________
29375, 35
|
|
03.01.2018, 16:10
|
Новичок на форуме
|
|
Регистрация: 03.01.2018
Сообщений: 6
|
|
В джаве есть game loop - в инете немало инфы об этом
Как он устроен я разбираюсь.
|
|
03.01.2018, 16:24
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Во первых java тут не при чём, а во вторых для js это просто называние утянутое из других языков и к циклам, как конструкциям языка, отношения не имеет. В js у нас события и цепочки событий.
__________________
29375, 35
|
|
03.01.2018, 17:00
|
Новичок на форуме
|
|
Регистрация: 03.01.2018
Сообщений: 6
|
|
В JS есть рекурсия. Вызов функции из нее самой. Это и есть игровой цикл.
Вызов функции по таймеру вроде тоже есть. Можно сделать функцию gameloop, которая вызывает функции элементов игрового мира.
|
|
03.01.2018, 18:23
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
>В JS есть рекурсия. Вызов функции из нее самой.
Есть.
>Это и есть игровой цикл.
Нет.
Я так полагаю вы начитались уроков по игроделу на js в интернете без малейшего базового понимания js. Это печально.
Возов функции через requestAnimationFrame - это не рекурсия и не цикл. AnimationFrame - это тоже событие готовности фрейма и совершенно не обязательно сработает прямо сейчас. Вот в промежуток между одним фремом и другим могут приходить пользовательские события, на которые вам следует реагировать и просто не запрашивать следующий фрейм если нужно остановится.
__________________
29375, 35
|
|
03.01.2018, 23:43
|
Новичок на форуме
|
|
Регистрация: 03.01.2018
Сообщений: 6
|
|
Моё восприятие программирование находится на уровне "А как это можно сделать без операторов Goto и Gosub-Return"?
Для меня программа - это цикл, который вызывает подпрограммы.
А тут все по-другому....
|
|
04.01.2018, 02:08
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
__________________
29375, 35
|
|
|
|