Alibek Omarov
5 years ago
2 changed files with 56 additions and 48 deletions
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
## Цель |
||||
|
||||
На текущий момент клиенты имеют некоторые части платформозависимого кода внутри себя. Это плохо, т.к. мы не можем использовать одинаковые функции (если не перепишем почти половину кода SDL) на разных платформах. |
||||
|
||||
## Клиентская часть |
||||
|
||||
* Клиент будет иметь возможность полностью реализовать touch-ввод. Отрисовка может быть произведена через HUD. |
||||
* Клиент получит простые события движения и обзора от движка |
||||
|
||||
### Клиентская реализация |
||||
|
||||
#### Клиент будет экспортировать некоторые функции движку (опционально): |
||||
|
||||
* `int IN_ClientTouchEvent ( int fingerID, float x, float y, float dx, float dy );` |
||||
|
||||
Вернёт 1 если касание активно, иначе 0. |
||||
|
||||
* `void IN_ClientMoveEvent ( float forwardmove, float sidemove );` |
||||
|
||||
Клиент будет накапливать значения величин для команд движения перед созданием команд и очищать их при CreateMove. |
||||
|
||||
* `void IN_ClientLookEvent ( float relyaw, float relpitch );` |
||||
|
||||
Клиент будет вращать камерой когда нужно, прямо как в реализации мыши |
||||
|
||||
## Движковая часть |
||||
|
||||
* Движок будет управлять событиями платформы и вызывать клиентские функции |
||||
* Движок реализует стандартную систему взгляда и движения если её нет в клиенте |
||||
|
||||
### Движковая реализация |
||||
|
||||
#### События касания |
||||
|
||||
Перед вызовом ClientMove движок обязан получить события о касании. |
||||
|
||||
Если из клиента экспортирована функция IN_ClientTouchEvent, событие будет отправлено клиенту. |
||||
|
||||
Иначе, движок будет рисовать свой touch-интерфейс. |
||||
|
||||
#### Другие события |
||||
|
||||
Интерфейс прикосновений и код джойстика в движке будут генерировать следующие два типа событий: |
||||
* События движения (функция IN_ClientMoveEvent) |
||||
* События просмотра (функция IN_ClientLookEvent) |
||||
|
||||
Если клиент экспортирует эти функции, события будут отправляться клиенту перед CreateMove |
||||
Иначе события просмотра будут происходить перед CreateMove, но после MoveEvent. Они будут применены к генерируемым командам |
Loading…
Reference in new issue