Управление в трехмерном окружении.

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

Информация о нажатиях клавиш управления и движения мышкой принимается через обработчик событий модуля графического окна. Этот модуль анализирует ввод только на наличие нажатия клавиши "Esc" (смена режима работы/выход) и после этого все полученные данные передает в каждом кадре в модуль промежуточного интерфейса. В интерфейсном модуле выполняются операции по преобразованию сигналов от клавиатуры и мыши в два вектора - направления движения и направления взгляда. Тут же должны быть функции (в плане разработки) по назначению/изменению клавиш управления, настройкам чувствительности и скорости движения.

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

Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 1952108845eccd97537c3d0.84901968 ) in lock_release_all() (line 269 of /usr/home/ib/web/trickrig.net/drupal-7.69/includes/lock.inc).