Хочу сделать в карте отдаление/приблежение камеры по нажатию кпопок +-.
Подскажите как это сделать, или какой-то вариант. Заранее благодарен
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
1 месяц назад
0
Отловить нажатие кнопок +- и в зависимости от нажатия отдалять или приближать камеру.
Ответы (5)
1
23
1 месяц назад
1
nazarpunk, чтобы приготовить борщ надо приготовить борщ :D
0
29
1 месяц назад
0
konvan5, в чём мой ответ неверен?
Задача делится на две подзадачи:
  • отлов нажатий
  • манипуляция с камерой
С чем проблема у автора я так и не понял.
1
23
1 месяц назад
Отредактирован konvan5
1
nazarpunk, все верно, ответ в вопросе :D
Думаю автор хотел узнать пример реализации со скринами, видео, кодом, как ниже от Makeba, (наверное).
0
29
1 месяц назад
0
konvan5, получается, что это классический "сделайте всё за меня" момент.
1
27
1 месяц назад
1
nazarpunk, если ты знал, что ответ в вопросе, и он делится на простые метафизические задачи, то зачем было разводить полемику, осознавая что решением будет "сделайте всё за меня"?
0
23
1 месяц назад
0
В каком варике делаешь карту? Если на 1.26а, то стандартным способом нельзя, разве что мемхаки использовать :D
Ответы (1)
1
31
1 месяц назад
1
konvan5, или ujPAI
0
23
1 месяц назад
Отредактирован Makeba
0
Базовый пример для Reforged. Остерегайтесь залипаний клавиш!
тысячи строк кода
CamKeys = {
    --задаём здесь желаемые клавиши на отдаление и приближение
    up = OSKEY_ADD,
    down = OSKEY_SUBTRACT
}

CamKeysShift = {
    --здесь задаём расстояние, на которое будет сдвигаться камера каждый тик таймера
    [CamKeys.up] = 7,
    [CamKeys.down] = -7,
}

CamKeysState = {
    [CamKeys.up] = false,
    [CamKeys.down] = false,
}

function initCamKeys()
    --инициализация триггоров на клавиши камеры и таймера опроса клавиш
    local camTrigger, releaseCamTrigger = CreateTrigger(), CreateTrigger()

    for _, value in pairs(CamKeys) do
        BlzTriggerRegisterPlayerKeyEvent(camTrigger, GetLocalPlayer(), value, 0, true)
        BlzTriggerRegisterPlayerKeyEvent(releaseCamTrigger, GetLocalPlayer(), value, 0, false)
    end

    TriggerAddCondition(camTrigger, Condition(controlCamKeys))
    TriggerAddCondition(releaseCamTrigger, Condition(controlCamKeysRelease))

    local t = CreateTimer()
    TimerStart(t, 0.01, true, function() setCameraDistance() end)
end

function controlCamKeys()
    CamKeysState[BlzGetTriggerPlayerKey()] = true
end

function controlCamKeysRelease()
    CamKeysState[BlzGetTriggerPlayerKey()] = false
end

function setCameraDistance()
    local shift = 0
    for k, v in pairs(CamKeysState) do
        local kShift = CamKeysShift[k]
        if v then
           shift = shift + kShift
        end
    end

    if shift ~= 0 then
        SetCameraFieldForPlayer( GetLocalPlayer(), CAMERA_FIELD_TARGET_DISTANCE, GetCameraField(CAMERA_FIELD_TARGET_DISTANCE) + shift, 0.00 )
    end
end
Загруженные файлы
0
18
1 месяц назад
0
На 1.26 можно сделать только через отлов стрелок вверх вниз влево вправо
Чтобы оставить комментарий, пожалуйста, войдите на сайт.