Помогите Локация ближе к игроку

kefavova

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Afek
Всем привет! У меня есть лист с локациями! Как узнать какая из локаций ближе к игроку? Думал сделать через if(p.distance(loc) < distanceloc)... Но нечего не получилось? Кто сможет помочь? Заранее спасибо )
 
Мой вариант. Не знаю как я засунул всё в 1 строку, но должно работать.
PHP:
public Location getNearestLocation(Player player, List<Location> locations) {
    Location nearest = null;
    Location location = player.getLocation();
    for(Location loc : locations) {
        nearest = nearest == null ? loc : loc.distanceSquared(location) < nearest.distanceSquared(location) ? loc : nearest;
    }
    return nearest;
}
Я хотел бы сделать через if()! Мне надо чтоб после проверки на дистанцию происходило какое-то действие...
Нашёл в интернете код но не могу разобраться что и как
Код:
    public static Location getLowestDistance(Location source, Location[] locs)
    {
    Location shortest = locs[0];
    for (Location loc : locs) {
        if (loc.distanceSquared(source) < shortest.distanceSquared(source))
            shortest = loc;
    }
    return shortest;
}

(Это плагин, а не мод....)
Оформил свой код как метод, должен работать. Если хочешь - все эти ? и : могу через if записать
 
Оформил свой код как метод, должен работать. Если хочешь - все эти ? и : могу через if записать
Можешь мне оформить через if (пожалуйста, до меня как-то не доходит)
 
Убрал лишнюю проверку в цикле. И действительно, почитай о тернарном операторе, полезная штука.
PHP:
public Location getNearestLocation(Player player, List<Location> locations) {
    Location nearest = locations.isEmpty() ? null : locations.get(0);
    Location location = player.getLocation();
    for(Location loc : locations) {
        if(loc.distanceSquared(location) < nearest.distanceSquared(location)) {
            nearest = loc;
        }
    }
    return nearest;
}
 
Назад
Верх