Movement/uk: Difference between revisions
Created page with "Максимальна швидкість: 6000 субтілов/тик (+прискорення за один тік, наприклад, гравітація, реактивний ранець, вибух)." |
No edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
=== Стрибки === | === Стрибки === | ||
Стрибки на землю встановлюють швидкість y | Стрибки на землю встановлюють швидкість y гравця на -13,2, збільшену на значення. | ||
Стрибок у повітря (подвійний стрибок) встановлює швидкість y тройника на -12,0, збільшену на значення. | Стрибок у повітря (подвійний стрибок) встановлює швидкість y тройника на -12,0, збільшену на значення. | ||
Line 50: | Line 50: | ||
=== Максимальна швидкість === | === Максимальна швидкість === | ||
Максимальна швидкість: 6000 субтілов/ | Максимальна швидкість: 6000 субтілов/тік (+прискорення за один тік, наприклад, гравітація, реактивний ранець, вибух). | ||
<code>src/game/gamecore.cpp</code> (перед обчисленням нового положення зі швидкості):<syntaxhighlight lang="c++"> | |||
<code>src/game/gamecore.cpp</code> ( | |||
if(length(m_Vel) > 6000) | if(length(m_Vel) > 6000) | ||
m_Vel = normalize(m_Vel) * 6000; | |||
</syntaxhighlight> | </syntaxhighlight>Це вузьке місце в вертикальному русі. При горизонтальному русі "рампа"-значення помножується на горизонтальну швидкість. Це призводить до того, що гравець сповільнюється і зупиняється, коли стає занадто швидким. Частіше за все це спостерігається при прискоренні | ||
Швидкість округлюється донизу з точністю <math>\frac{1}{256}</math> кожен тік. Це призводить до того, що гравець припиняє рухатися горизонтально при надто великій швидкості. | |||
{{Todo|* convert sub-tiles/tick into tiles/sec * find max vel und real max vel (from where would a constant function fit) * find speed, where the tee stops moving * write about ramp speed, and add diagram}} | {{Todo|* convert sub-tiles/tick into tiles/sec * find max vel und real max vel (from where would a constant function fit) * find speed, where the tee stops moving * write about ramp speed, and add diagram}} | ||
< | <span id="Corner_Skimming"></span> | ||
=== | === Обрізання кутів === | ||
Гравець вважається перебуваючим на землі лише завдяки своєму положенню і відстані до землі - для цього не потрібно, щоб гравець мав швидкість вниз. Таким чином, гравець може бути "приземлений" під час руху вгору, якщо тільки гравець торкається кута тайлу. | |||
Обрізання кутів: | |||
* дозволяє гравцеві оновити свій подвійний стрибок (корисно при проходженні таких карт, як [https://ddnet.org/maps/Impetuous Impetuous]). | |||
* | * може застосовувати прискорення землі та максимальну швидкість до гравця на короткий час (за умови, що горизонтальна швидкість гравця в повітрі менше максимальної швидкості землі перед пропуском кута). | ||
* | |||
Обрізання кутів не часто навмисно використовується в частинах карти (за винятком таких карт, як [https://ddnet.org/maps/Short-32-And-32-Precise-32-7/ Short and Precise 7]), але може бути використана в коротких спідренах як невелика оптимізація. | |||
{{Todo|add gif}} | {{Todo|add gif}} | ||
< | <span id="Elevated_Jump"></span> | ||
=== | === Стрибок з висоти === | ||
Стрибок на землю може бути виконаний навіть якщо гравець знаходиться на кільках субтілов вище землі. | |||
[[Category:Game-Mechanic{{#translation:}}]] | [[Category:Game-Mechanic{{#translation:}}]] |
Latest revision as of 18:10, 27 August 2023
Рух - один із основних аспектів Teeworlds і DDrace.
Основи
Гравітація
Кожний тік до швидкості y (вниз) додається прискорення 0,5, викликане гравітацією.
Стрибки
Стрибки на землю встановлюють швидкість y гравця на -13,2, збільшену на значення.
Стрибок у повітря (подвійний стрибок) встановлює швидкість y тройника на -12,0, збільшену на значення.
Стрибок "встановлює" швидкість y, скасовуючи будь-яку попередню швидкість вгору або вниз. Це дуже корисно в сценаріях, де потрібно зупинити великий вертикальний імпульс.
Горизонтальний рух
- Нічого не натискати:
- Земля: Кожний тік
velocity.x = velocity.x * 0.5
. - Повітря: Кожний тік
velocity.x = velocity.x * 0.95
.
- Земля: Кожний тік
Натискання клавіші у протилежному напрямку:
- Земля: Кожний такт горизонтальна швидкість зменшується на 2, поки не досягне 10 в протилежному напрямку.
- Повітря: Кожний тік горизонтальна швидкість зменшується на 1,5 до досягнення 5 в протилежному напрямку.
Збільшення горизонтальної швидкості при натисканні a або d:
- Земля: Кожний тік горизонтальна швидкість збільшується на 2, поки не досягне 10.
- Повітря: Кожний тік горизонтальна швидкість збільшується на 1,5, поки не досягне 5.
Тріння ігнорується при утриманні натиснутою клавіші. Таким чином, при великих швидкостях натискання ні на що не сповільнить гравця швидше, ніж рух у протилежному напрямку, оскільки тріння буде мати експоненціальне сповільнення порівняно з лінійним сповільненням a/d
.
Додатково
Максимальна швидкість
Максимальна швидкість: 6000 субтілов/тік (+прискорення за один тік, наприклад, гравітація, реактивний ранець, вибух).
src/game/gamecore.cpp
(перед обчисленням нового положення зі швидкості):
if(length(m_Vel) > 6000)
m_Vel = normalize(m_Vel) * 6000;
Це вузьке місце в вертикальному русі. При горизонтальному русі "рампа"-значення помножується на горизонтальну швидкість. Це призводить до того, що гравець сповільнюється і зупиняється, коли стає занадто швидким. Частіше за все це спостерігається при прискоренні
Швидкість округлюється донизу з точністю кожен тік. Це призводить до того, що гравець припиняє рухатися горизонтально при надто великій швидкості.
Обрізання кутів
Гравець вважається перебуваючим на землі лише завдяки своєму положенню і відстані до землі - для цього не потрібно, щоб гравець мав швидкість вниз. Таким чином, гравець може бути "приземлений" під час руху вгору, якщо тільки гравець торкається кута тайлу.
Обрізання кутів:
- дозволяє гравцеві оновити свій подвійний стрибок (корисно при проходженні таких карт, як Impetuous).
- може застосовувати прискорення землі та максимальну швидкість до гравця на короткий час (за умови, що горизонтальна швидкість гравця в повітрі менше максимальної швидкості землі перед пропуском кута).
Обрізання кутів не часто навмисно використовується в частинах карти (за винятком таких карт, як Short and Precise 7), але може бути використана в коротких спідренах як невелика оптимізація.
Стрибок з висоти
Стрибок на землю може бути виконаний навіть якщо гравець знаходиться на кільках субтілов вище землі.