2
0
mirror of https://github.com/FWGS/xash3d-fwgs synced 2024-12-29 12:15:26 +01:00

Documentation: input-interface: split Russian translation to new file

This commit is contained in:
Alibek Omarov 2019-11-15 14:48:29 +03:00
parent 1e5921d33f
commit c42b5e043d
2 changed files with 56 additions and 48 deletions

View File

@ -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. Они будут применены к генерируемым командам

View File

@ -1,21 +1,15 @@
## Purpose / Цель
**Eng:**
## Purpose
Clients have different platform-depended input code now.
It is bad because we cannot use same functions (if we won't rewrite almost half of SDL) on different platforms.
**Rus:**
На текущий момент клиенты имеют некоторые части платформозависимого кода внутри себя. Это плохо, т.к. мы не можем использовать одинаковые функции (если не перепишем почти половину кода SDL) на разных платформах.
## Client part / Клиентская часть
**Eng:**
## Client part
* Client will have ability to fully implement touch input. Drawing may be done by HUD.
* Client will receive basic motion and look events from engine
**Rus:**
* Клиент будет иметь возможность полностью реализовать touch-ввод. Отрисовка может быть произведена через HUD.
* Клиент получит простые события движения и обзора от движка
### Client implementation
### Client implementation / Клиентская реализация
**Eng:**
#### Client will optionally export some functions to Engine:
* `int IN_ClientTouchEvent ( int fingerID, float x, float y, float dx, float dy );`
@ -29,31 +23,13 @@ Client wil accumulate move values before creating commands and flush it on Creat
Client will rotate camera when needed as in mouse implementation
**Rus:**
#### Клиент будет экспортировать некоторые функции движку (опционально):
* `int IN_ClientTouchEvent ( int fingerID, float x, float y, float dx, float dy );`
## Engine part
Вернёт 1 если касание активно, иначе 0.
* `void IN_ClientMoveEvent ( float forwardmove, float sidemove );`
Клиент будет накапливать значения величин для команд движения перед созданием команд и очищать их при CreateMove.
* `void IN_ClientLookEvent ( float relyaw, float relpitch );`
Клиент будет вращать камерой когда нужно, прямо как в реализации мыши
## Engine part / Движковая часть
**Eng:**
* Engine will handle platform events and call client functions.
* Engine will implement fallback look and movement system when client interface not present
**Rus:**
* Движок будет управлять событиями платформы и вызывать клиентские функции
* Движок реализует стандартную систему взгляда и движения если её нет в клиенте
### Engine implementation
### Engine implementation / Реализация в движке
**Eng:**
#### Touch events
Before calling ClientMove engine must get touch events.
@ -62,27 +38,11 @@ If client exported IN_ClientTouchEvent, event will be sent to client.
Otherwise engine will draw own touch interface.
**Rus:**
#### События касания
#### Other events
Перед вызовом ClientMove движок обязан получить события о касании.
Если из клиента экспортирована функция IN_ClientTouchEvent, событие будет отправлено клиенту.
Иначе, движок будет рисовать свой touch-интерфейс.
#### Other events / Другие события
**Eng:**
Engine touch interface and joystick support code will generate two types of events:
* Move events (IN_ClientMoveEvent function)
* Look events (IN_ClientLookEvent function)
If client exported these functions, events will be sent to client before CreateMove
Otherwise Look Event will be processed before CreateMove, but MoveEvent after. It will be applied to generated command
**Rus:**
Интерфейс прикосновений и код джойстика в движке будут генерировать следующие два типа событий:
* События движения (функция IN_ClientMoveEvent)
* События просмотра (функция IN_ClientLookEvent)
Если клиент экспортирует эти функции, события будут отправляться клиенту перед CreateMove
Иначе события просмотра будут происходить перед CreateMove, но после MoveEvent. Они будут применены к генерируемым командам