Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите нужно написать код на луа для поворота тела в задоное направление

Ыч Ычч Ученик (136), на голосовании 1 год назад
Нужно написать код на луа чтобы тело поварачивалось в задоное направление
Я играю с модом на маенкрафт грубо говоря для программирования
Я смог написать код токо на поворот к примеру на 90 градусов по часовой

local rotation = 90

redstone.setOutput("left",false)
os.sleep(rotation/180)
redstone.setOutput("left",false)
Да выглядит как кастыль но больше не как не сделать поворот
Чтобы сделать поворот против часовой есть такой код

local rotation = 90

redstone.setOutput("right",true)
redstone.setOutput("left",false)
os.sleep(rotation/180)
redstone.setOutput("left",false)
redstone.setOutput("right",false)

И ещё вроде для поворота на определённый угол надо знать нынешний
Его узнать не льзя и с моиме 0 извилинами вроде чтобы его узнать нужно будет просто вычетать и складывать на скоко он повернулся по типу в начале было 0 оно повернулось на 90 градусов по часовой и просто к 0 прибавляем 90 если я написал какуюту фигню то не удевляйтесь и извените что нет точек и запятых спасибо за ответ
Голосование за лучший ответ
Professional Professional Мудрец (16353) 1 год назад
Понял, что вы хотите сделать. Предлагаю вам создать систему отслеживания текущего угла поворота. Это можно сделать с помощью глобальной переменной, которая будет хранить текущий угол поворота.

Каждый раз, когда вы поворачиваете объект на определенный угол, вы будете обновлять эту переменную.

Вот как это может выглядеть:

```lua
currentAngle = 0 -- текущий угол поворота

function turn(direction, angle)
if direction == "left" then
redstone.setOutput("left", true)
redstone.setOutput("right", false)
os.sleep(angle / 180)
redstone.setOutput("left", false)
currentAngle = (currentAngle - angle) % 360 -- обновляем текущий угол
elseif direction == "right" then
redstone.setOutput("right", true)
redstone.setOutput("left", false)
os.sleep(angle / 180)
redstone.setOutput("right", false)
currentAngle = (currentAngle + angle) % 360 -- обновляем текущий угол
end
end

-- Пример использования:
turn("left", 90)
print(currentAngle) -- будет показывать -90 (или 270, если вы предпочитаете положительные углы)
turn("right", 45)
print(currentAngle) -- будет показывать -45
```

Теперь, когда у вас есть система отслеживания угла, вы можете легко решить, в какую сторону и на сколько поворачивать объект, чтобы достичь нужного угла. То есть, если вы хотите повернуть объект на 180 градусов от текущего положения, вы можете просто использовать функцию `turn` и передать ей нужные параметры.

Надеюсь, это поможет вам с вашим проектом! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте знать.
Похожие вопросы