Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2018, 11:40
Новичок на форуме
Отправить личное сообщение для Olegus79 Посмотреть профиль Найти все сообщения от Olegus79
 
Регистрация: 03.01.2018
Сообщений: 6

Как остановить программу до нажатия любой клавиши "Press any key to continue"?
Я попробовал introloop: if (onkeydown == false) continue introloop;
но это не работает (((

Какэто сделать?
превращать программу в функцию обработчика события keydownя не могу так как такая задержка встречается не один раз

например после нажатия на паузу появляется предложение press any key to continue
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2018, 14:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Программу нельзя просто взять и остановить на любом месте.
Делишь программу на логические блоки - функции, которые вызывают друг друга рождая взаимодействие - программу. Вот между этими самыми вызовами уже можно остановиться - просто не вызывая следующей функции, которую вызвать уже только на событие от пользователя.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2018, 15:26
Новичок на форуме
Отправить личное сообщение для Olegus79 Посмотреть профиль Найти все сообщения от Olegus79
 
Регистрация: 03.01.2018
Сообщений: 6

Смысл в том, чтобы игровой цикл останавливался при нажатии на паузу.
Если весь игровой цикл сделать функцией реакции на any key, то это будет неправильно
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2018, 15:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

В js нет никакого игрового цикла, потому что в js нельзя зафигачить какой-нить sleep.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2018, 16:10
Новичок на форуме
Отправить личное сообщение для Olegus79 Посмотреть профиль Найти все сообщения от Olegus79
 
Регистрация: 03.01.2018
Сообщений: 6

В джаве есть game loop - в инете немало инфы об этом
Как он устроен я разбираюсь.
Ответить с цитированием
  #6 (permalink)  
Старый 03.01.2018, 16:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Во первых java тут не при чём, а во вторых для js это просто называние утянутое из других языков и к циклам, как конструкциям языка, отношения не имеет. В js у нас события и цепочки событий.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2018, 17:00
Новичок на форуме
Отправить личное сообщение для Olegus79 Посмотреть профиль Найти все сообщения от Olegus79
 
Регистрация: 03.01.2018
Сообщений: 6

В JS есть рекурсия. Вызов функции из нее самой. Это и есть игровой цикл.
Вызов функции по таймеру вроде тоже есть. Можно сделать функцию gameloop, которая вызывает функции элементов игрового мира.
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2018, 18:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

>В JS есть рекурсия. Вызов функции из нее самой.
Есть.
>Это и есть игровой цикл.
Нет.

Я так полагаю вы начитались уроков по игроделу на js в интернете без малейшего базового понимания js. Это печально.
Возов функции через requestAnimationFrame - это не рекурсия и не цикл. AnimationFrame - это тоже событие готовности фрейма и совершенно не обязательно сработает прямо сейчас. Вот в промежуток между одним фремом и другим могут приходить пользовательские события, на которые вам следует реагировать и просто не запрашивать следующий фрейм если нужно остановится.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2018, 23:43
Новичок на форуме
Отправить личное сообщение для Olegus79 Посмотреть профиль Найти все сообщения от Olegus79
 
Регистрация: 03.01.2018
Сообщений: 6

Моё восприятие программирование находится на уровне "А как это можно сделать без операторов Goto и Gosub-Return"?
Для меня программа - это цикл, который вызывает подпрограммы.
А тут все по-другому....
Ответить с цитированием
  #10 (permalink)  
Старый 04.01.2018, 02:08
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

http://isaacsukin.com/news/2015/01/d...ops-and-timing
Тут всё хорошо расписано. В том числе и остановка.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Object.predefinedProperties создает новый объект с назначенными getter'ами/setter'ами devote Ваши сайты и скрипты 13 06.03.2012 21:57