Научите

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
298
Вектор. Как правильно оно работает, какой алгоритм нужен. У меня есть недо-вектор, который работает относительно местоположения цел. объекта, и текущего местоположения (голова так скажем). ООООЧЕНЬ тяжело оптимизировать это дерьмо, поскольку такое вычисление жрёт много, летит 2 блока за тик...
Если даже тут не распишите, скиньте какие-нибудь ресурсы, как работает это вычисление, плез с:
Заодно кому-то полезно будет

Всё-таки 8-й класс только впереди
 
Решение

Всё-таки 8-й класс только впереди
same trouble. как фиксить?
Вектор. Как правильно оно работает, какой алгоритм нужен.
Что конкретно тебе надо?
Давай начнём чтоли с самого начала. Что собственно такое вектор? Отрезок, имеющий помимо величины и направление. То есть, например, когда мы бросаем мяч - у нас есть направление куда мы бросаем его, и сила с которой мы бросаем этот мяч. Можно сказать, что оно уже является вектором.
В bukkit вектор представлен классом, принимающим 3 значения при создании: координаты x, y и z. На майнленде векторы можно сделать от двух позиций, т.е начало и конец.
У меня есть недо-вектор, который работает относительно местоположения цел. объекта, и текущего местоположения (голова...

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540

Всё-таки 8-й класс только впереди
same trouble. как фиксить?
Вектор. Как правильно оно работает, какой алгоритм нужен.
Что конкретно тебе надо?
Давай начнём чтоли с самого начала. Что собственно такое вектор? Отрезок, имеющий помимо величины и направление. То есть, например, когда мы бросаем мяч - у нас есть направление куда мы бросаем его, и сила с которой мы бросаем этот мяч. Можно сказать, что оно уже является вектором.
В bukkit вектор представлен классом, принимающим 3 значения при создании: координаты x, y и z. На майнленде векторы можно сделать от двух позиций, т.е начало и конец.
У меня есть недо-вектор, который работает относительно местоположения цел. объекта, и текущего местоположения (голова так скажем). ООООЧЕНЬ тяжело оптимизировать это дерьмо, поскольку такое вычисление жрёт много, летит 2 блока за тик...
А что именно у тебя в векторах? Ты запускаешь снаряд по вектору? Или ты делаешь луч по вектору? В bukkit есть "функция" для запуска снаряда, launchProjectile
1688231206434.png
Она принимает Vector как velocity. Надеюсь ты шаришь в английском, Velocity - скорость. Хотя вектор это больше про направление... Возможно оно работает вот так(я гуглил твой вопрос):
1688231281306.png
(Читаем первое предложение: "Векторы контроллируют направление, но я не уверен насчёт скорости. Я думаю, чем больше значение X и Z - тем быстрее они(снаряды) будут лететь, но я не уверен."). То есть, как на мл та штука с запуском к координатам.
Или ты создаешь снежок, который ты толкаешь вперёд? Я как-то делал такую штуку, у меня была как лазерная пушка: я каждый блок прибавлял +1 и проверял, есть ли там игрок. Работало достаточно быстро. (Если будешь делать такое - тебе надо определять направление)
Если даже тут не распишите, скиньте какие-нибудь ресурсы, как работает это вычисление, плез с:
Вот две статейки про векторы в плагинах майнкрафта, обе на английском: фёрст секонд

олсо пиши в лс, я явно более компетентен в этой теме чем комментатор выше. ну и поговорим кое о чём, раз уж мы так похожи
 
Последнее редактирование:

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
298
same trouble. как фиксить?

Что конкретно тебе надо?
Давай начнём чтоли с самого начала. Что собственно такое вектор? Отрезок, имеющий помимо величины и направление. То есть, например, когда мы бросаем мяч - у нас есть направление куда мы бросаем его, и сила с которой мы бросаем этот мяч. Можно сказать, что оно уже является вектором.
В bukkit вектор представлен классом, принимающим 3 значения при создании: координаты x, y и z. На майнленде векторы можно сделать от двух позиций, т.е начало и конец.

А что именно у тебя в векторах? Ты запускаешь снаряд по вектору? Или ты делаешь луч по вектору? В bukkit есть "функция" для запуска снаряда, launchProjectile
Посмотреть вложение 1549
Она принимает Vector как velocity. Надеюсь ты шаришь в английском, Velocity - скорость. Хотя вектор это больше про направление... Возможно оно работает вот так(я гуглил твой вопрос):
Посмотреть вложение 1550
(Читаем первое предложение: "Векторы контроллируют направление, но я не уверен насчёт скорости. Я думаю, чем больше значение X и Z - тем быстрее они(снаряды) будут лететь, но я не уверен."). То есть, как на мл та штука с запуском к координатам.
Или ты создаешь снежок, который ты толкаешь вперёд? Я как-то делал такую штуку, у меня была как лазерная пушка: я каждый блок прибавлял +1 и проверял, есть ли там игрок. Работало достаточно быстро. (Если будешь делать такое - тебе надо определять направление)

Вот две статейки про векторы в плагинах майнкрафта, обе на английском: фёрст секонд

олсо пиши в лс, я явно более компетентен в этой теме чем комментатор выше. ну и поговорим кое о чём, раз уж мы так похожи
посмотрел, повтыкал, понял что я не дорос до математики такой, по этому через пол годика может вернусь к этой теме)
 

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540
посмотрел, повтыкал, понял что я не дорос до математики такой, по этому через пол годика может вернусь к этой теме)
Ну не знаю. В первой статье вроде все более или менее легко, там идёт обычное сложение умножение векторов и тд. Но да, векторы - сложно и на майнленде их нормально не сделать.
 
Последнее редактирование:

Copter533

Участник
Регистрация
24 Июн 2023
Сообщения
42
Ну не знаю. В первой статье вроде все более или менее легко, там идёт обычное сложение умножение векторов и тд. Но да, векторы - сложно и на майнленде их нормально не сделать.
Вектор на сам деле не очень трудный, обычный массив из 3 чисел, если складываешь / вычитаешь то просто делаешь это для каждой координаты, если умножаешь / делишь то все 3 числа умножаешь / делишь на 1 число (скаляр) если хочешь чтобы у вектора была длинна в 1 блок, то дели на длинну самого вектора.

Но на МЛ вместо кода... говнище ... тк тебе придётся:
- 3 действия на извлечение координат XYZ из нач. позиции
- 3 действия на извлечение координат XYZ из кон. позиции
- 3 действия на вычитание по типу: vector_x = end_x - start_x

те на создание вектора надо потратить 9 действий + любое действие обойдётся минимум в 3 блока
 

maxim34a

Участник
Регистрация
10 Июн 2023
Сообщения
540

Copter533

Участник
Регистрация
24 Июн 2023
Сообщения
42
ну вот мне надо щас построить вектор через yaw и pitch игрока. Сделаешь? Нет, потому что на майнленде такое невозможно
Уже делал... но если ты настаиваешь что это невозможно...
 
Сверху