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` и передать ей нужные параметры.
Надеюсь, это поможет вам с вашим проектом! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте знать.
Я играю с модом на маенкрафт грубо говоря для программирования
Я смог написать код токо на поворот к примеру на 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 если я написал какуюту фигню то не удевляйтесь и извените что нет точек и запятых спасибо за ответ