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

Помогите Как правильно высчитать направление игрока через yaw

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    deni9078
    Есть функция, позволяющая получить направление игрока (север, юг, запад или восток) через его yaw, однако она работает не правильно. Что тут не так?


    if ((yaw >= 135 && yaw <= 180) || (yaw >= -180 && yaw <= -135)) {
    return "NORTH";
    } else if (yaw > -135 && yaw < -45) {
    return "EAST";
    } else if (yaw > -45 && yaw < 45) {
    return "SOUTH";
    } else {
    return "WEST";
    }
     
  2. SashaBrine

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

    Баллы:
    76
    Имя в Minecraft:
    IJustFortiLive
    Возможно я не прав. Я прочитал несколько зарубежных обсуждений на форуме SpigotMC и Bukkit. Попробуй это:
    Код:
        private static BlockFace[] radial = { BlockFace.NORTH, BlockFace.NORTH_EAST, BlockFace.EAST, BlockFace.SOUTH_EAST, BlockFace.SOUTH, BlockFace.SOUTH_WEST, BlockFace.WEST, BlockFace.NORTH_WEST };
    
        public BlockFace yawToFace(float yaw) {
            return radial[Math.round(yaw / 45f) & 0x7];
        }
     
  3. ayranelox

    ayranelox Участник

    Баллы:
    31
    if ((yaw >= -45 && yaw < 45)) {
    return "SOUTH";
    } else if (yaw >= 45 && yaw < 135) {
    return "EAST";
    } else if (yaw >= 135 || yaw < -135) {
    return "NORTH";
    } else {
    return "WEST";
    }
     

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