1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Получение координаты с какой-либо стороны от игрока

Тема в разделе "Разработка плагинов для новичков", создана пользователем swat1x, 2 янв 2022.

  1. Автор темы
    swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Как можно получить координату зелёной точки?
    upload_2022-1-2_0-26-19.png
     
  2. DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
    player.getLocation().add(x, y, z);
     
  3. Автор темы
    swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    а если игрок повернётся? круто ты надристал конечно
     
  4. DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
     
  5. Автор темы
    swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    а ты на тригонометрию решил забить?
     
  6. DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
    Досконально мне высчитывать лень, так можно посчитать и относительно куда он смотрит (getYaw и getPitch) и тригонометрию подрубить. Ты спросил как я ответил дальше шамань как хочешь, хоть стереометрию подрубай. Если нужен готовый код то так и пиши. Со всеми нюансами которые тебе важны, а не просто как получить "координату зелёной точки"
     
  7. Автор темы
    swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    если ты не можешь ответить на вопрос, то просто не пиши. Всё "нюансы" указаны в заголовке темы, стоит просто прочитать
     
  8. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Для решения подобных задач необходимо абстрагироваться от игры и представить, как задача выглядела бы в геометрии - на плоскости или в пространстве.

    Фактически тебе необходимо получить координаты точки на окружности под определённым углом, верно?

    Это практически дословный запрос в гугл, по которому я спокойно нашёл решение:
    "x = r*cos(fi)
    y = r*sin(fi)
    нужен радиус и угол"

    Скажу по памяти, что очень похоже на рабочее.

    Но вообще, конечно, если задаёшь вопросы на форумах, тебе стоит научиться лучше формулировать свои мысли.
    Из первого поста еле как понял, в чём твоя задача состоит. С текущими условиями даже ответ про loc.add() мог бы являться верным.

    Конкретно в этом вопросе можно было бы написать что-то типа:
    Как получить координаты точки относительно игрока, который может вращаться вокруг своей оси? Мне это нужно для того, чтобы отображать частицу возле правой руки игрока
     
    Последнее редактирование: 2 янв 2022
  9. Автор темы
    swat1x

    swat1x Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Вообщем хз как у меня это получилось, но при значении deviationPercentage в 90, получился результат +- который мне нужен
    Код:
        public static Location getPointAroundPlayer(Player player, double radius, int deviationPercentage){
            Location playerLocation = player.getLocation();
            Location point = playerLocation.clone();
            point.setX((playerLocation.getX() + Math.cos(0.017453292519943295 * playerLocation.getYaw()+deviationPercentage) * radius));
            point.setY(playerLocation.getY() + 1.5);
            point.setZ((playerLocation.getZ() + Math.sin(0.017453292519943295 * playerLocation.getYaw()+deviationPercentage) * radius));
            return point;
        }
     

Поделиться этой страницей