- Регистрация
- 2 Май 2023
- Сообщения
- 238
Итак, недавно я наткнулся на тему, где человек кодом на креативе хотел сделать подобные партиклы. К сожалению я не нашёл способа повернуть эти два кольца на 45 градусов вокруг своей оси и сделать 4, поэтому будет только 2. Если у кого-то есть вариант как это сделать - прошу в ответы на тему.
Код состоит из трёх строчек кода, где первая - активатор, а остальные две - создатели для партиклов.
Строка #1 - Активатор:
В этой строке мы устанавливаем базовые значения, вроде радиуса или высоты круга. Здесь mobHeight взято за 1.8, т.к. это примерная высота игрока в блоках. Партиклы будут создавать кольцо от %player% center, %player% i будет являться счётчиком угла.
Строка #2 - Создание первого круга:
В этой строке не буду долго распинаться, как и в следующей, ибо здесь много тригонометрии. Кому слишком интересно - гугл в одну часть экрана, код в другую.
Строка #3 - Создание перпендикулярного круга:
Практически идентичная предыдущей строка с заменой названия функции, X -> Z и отсутствием иначе с вызовом след. функции.
Тем не менее, результат:
![1719521945916.png 1719521945916.png](https://ruforum.mineland.net/data/attachments/7/7795-4d949a379a0d35df4558b8529cf2b5df.jpg)
![1719521966345.png 1719521966345.png](https://ruforum.mineland.net/data/attachments/7/7796-5cd20b44c6c6496d6d7e990070545d55.jpg)
Код состоит из трёх строчек кода, где первая - активатор, а остальные две - создатели для партиклов.
Строка #1 - Активатор:
Код:
[Событие игрока] Событие чата {
[Если игрок (Имя равно)] Ваш ник {
[Если игрок (Сообщение равно)] Ваша команда {
[Установить (=)] %player% mobHeight = 1.8
[Установить (/)] %player% radius = %player% mobHeight / 2
[Уст Знач В Мест] %player% center = 🍎 Текущее местоположение, Y += %player% radius
[Установить (=)] %player% i = 0
[Вызвать функцию] particlesRing.XY
}
}
}
В этой строке мы устанавливаем базовые значения, вроде радиуса или высоты круга. Здесь mobHeight взято за 1.8, т.к. это примерная высота игрока в блоках. Партиклы будут создавать кольцо от %player% center, %player% i будет являться счётчиком угла.
Строка #2 - Создание первого круга:
Код:
[Функция] particlesRing.XY {
Ждать (0 тиков)
[Если переменная] %player% i < 360 {
[Установить (Радианы)] %player% angle = %player% i
[Установить (Косинус)] %player% angleCos = %player% angle
[Установить (Синус)] %player% angleSin = %player% angle
[Установить (*)] %player% x = %player% angleCos * %player% radius
[Установить (*)] %player% y = %player% angleSin * %player% radius
[Уст Знач В Мест] %player% spawnLoc = %player% center; X += %player% x; Y += %player% y
[Частица] %player% spawnLoc, Количество=1, Частица=ВашаЧастица, Скорость=0
[Установить (+=)] %player% i += 10
[Вызвать функцию] particlesRing.XY
} Иначе {
[Установить (=)] %player% i = 0
[Вызвать функцию] particlesRing.YZ
}
}
В этой строке не буду долго распинаться, как и в следующей, ибо здесь много тригонометрии. Кому слишком интересно - гугл в одну часть экрана, код в другую.
Строка #3 - Создание перпендикулярного круга:
Код:
[Функция] particlesRing.YZ {
Ждать (0 тиков)
[Если переменная] %player% i < 360 {
[Установить (Радианы)] %player% angle = %player% i
[Установить (Косинус)] %player% angleCos = %player% angle
[Установить (Синус)] %player% angleSin = %player% angle
[Установить (*)] %player% z = %player% angleCos * %player% radius
[Установить (*)] %player% y = %player% angleSin * %player% radius
[Уст Знач В Мест] %player% spawnLoc = %player% center; Z += %player% z; Y += %player% y
[Частица] %player% spawnLoc, Количество=1, Частица=ВашаЧастица, Скорость=0
[Установить (+=)] %player% i += 10
[Вызвать функцию] particlesRing.YZ
}
}
Практически идентичная предыдущей строка с заменой названия функции, X -> Z и отсутствием иначе с вызовом след. функции.
Тем не менее, результат:
![1719521945916.png 1719521945916.png](https://ruforum.mineland.net/data/attachments/7/7795-4d949a379a0d35df4558b8529cf2b5df.jpg)
![1719521966345.png 1719521966345.png](https://ruforum.mineland.net/data/attachments/7/7796-5cd20b44c6c6496d6d7e990070545d55.jpg)
Последнее редактирование: