Объединение питания Processing.js и Рабочих по сети

Я обычно избегаю подхода дизайна, подразумеваемого использованием Andrew термина "основа Вашего приложения". Под чем я подразумеваю, это - то, что я думаю, что необходимо постараться не смешивать слишком много вещей в центральной части - хорошее проектирование программы обычно включает разделение функциональности "проблемной областью".

делегат А объект является объектом, который уведомляется, когда объект, с которым он подключен, достигает определенных событий или состояний. В этом случае Делегат Приложения является объектом, который получает уведомления, когда объект UIApplication достигает определенных состояний. Во многих отношениях это - специализированный непосредственный Шаблон "наблюдатель".

Это означает, что "проблемная область" для AppDelegate обрабатывает специальные состояния UIApplication. Самые важные из них:

  • applicationDidFinishLaunching: - хороший для обработки конфигурации на запуске и конструкции
  • applicationWillTerminate: - хороший для чистки в конце

необходимо постараться не помещать другую функциональность в AppDelegate, так как они действительно не принадлежат там. Такая другая функциональность включает:

  • данные Документа - Вы должны иметь одиночный элемент менеджера по документу (для нескольких приложений документа) или одиночный элемент документа (для приложений единого документа)
  • контроллеры Кнопки/таблицы/представления, просмотреть методы делегата или другую обработку представления (за исключением конструкции представления верхнего уровня в applicationDidFinishLaunching:) - эта работа должна быть в соответствующих классах контроллера представления.

Многие люди смешивают эти вещи в свой AppDelegate, потому что они ленивы, или они думают, что AppDelegate управляет целой программой. Необходимо постараться не централизовать в AppDelegate, так как он пачкает проблемные области в приложении и не масштабируется.

7
задан JorenB 24 August 2009 в 12:52
поделиться

4 ответа

Симуляторы физики 3D-игр (например, на xbox360) обычно работают с фиксированной частотой, независимо от частоты кадров. Это связано с тем, что физика слишком сложна для аналитического моделирования, поэтому вы выполняете числовые приближения, поэтому вам необходимо детерминированно синхронизировать ошибки. Дополнительным преимуществом является то, что частота кадров не связана с производительностью физики, поэтому вы можете обновлять физику с частотой 5 Гц, интерполировать и т. Д.

Таким образом, модель, которую вы описываете, именно так, как это делают профессионалы.

3
ответ дан 7 December 2019 в 14:36
поделиться

В этом примере вычисление позиций должно быть завершено до розыгрыша мяча - так что асинхронная обработка не имеет смысла?

Сам по себе p5 очень синхронен - ​​есть один центральный draw метод, который выполняет все рисование.

Также веб-воркеры не могут получить доступ к dom, поэтому их нельзя использовать для рисования.

Для более сложных приложений на основе событий, таких как игра может быть использована веб-работниками.

0
ответ дан 7 December 2019 в 14:36
поделиться

Эта идея напоминает мне идею интеграции очереди задач Google в Google App Engine.

http://code.google.com/appengine/docs/python/taskqueue/

Это может вам помочь.

Для моей асинхронной настольной онлайн-игры я собираюсь реализовать систему, в которой история сообщений сохраняется, чтобы игроки могли видеть, что произошло, когда их очередь не была. Каждому происходящему будет присвоен уникальный идентификатор, и всякий раз, когда игроку отправляются какие-либо сообщения, он отслеживает последнее из полученных. Затем, когда они вернутся, они могут увидеть быструю анимацию всего, что произошло с последнего полученного сообщения.

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

0
ответ дан 7 December 2019 в 14:36
поделиться

Подумать только ... но в обработке сигналов то, что вы делаете, - это частота дискретизации, которая нарезает аналоговую сигнал в цифровую информацию. Главное - сохранить ровно столько сигнала, чтобы воссоздать оригинал. Подобно тому, как MP3 копируются из музыкальных файлов с использованием 128, 192 и т. Д.

Таким образом, если вы перемещаете мяч математически определяемым способом (т.е. по параболе), вы сможете преобразовать путь в набор координаты, приближающие аналоговый путь. Эти координаты вычислить гораздо быстрее, чем полный путь. Его также можно было бы настроить (изменив частоту дискретизации).

Я знаю, что это не отвечает ни на один из ваших вопросов о Processing.js или Web Workers. Просто идея, которая поможет вам выполнять эти вычисления более эффективно.

0
ответ дан 7 December 2019 в 14:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: