리마전 소스질문입니다.
컨텐츠 정보
- 491 조회
- 3 댓글
- 0 추천
- 0 비추천
- 목록
본문
public ArrayList<L1Object> getVisibleObjects(L1Object object, int radius) {
L1Map map = object.getMap();
Point pt = object.getLocation();
ArrayList<L1Object> result = null;
if(radius < 0)
result = new ArrayList<L1Object>(19 * 8);
else if(radius == 0)
result = new ArrayList<L1Object>(2);
else
result = new ArrayList<L1Object>(radius * 8);
if (map.getId() <= MAX_MAP_ID) {
Collection<L1Object> col = _visibleObjects[map.getId()].values();
for (L1Object element : col) {
if (element == null || element.equals(object)) {
continue;
}
if (map != element.getMap()) {
continue;
}
if (radius == -1) {
if (pt.isInScreen(element.getLocation())) {
result.add(element);
}
} else if (radius == 0) {
if (pt.isSamePoint(element.getLocation())) {
result.add(element);
}
} else {
if (pt.getTileLineDistance(element.getLocation()) <= radius) {
result.add(element);
}
}
}
}
return result;
}
파란색으로 색칠부분 소스저 숫자가 무슨뜻인지 설명해주실분있나요?
-
등록일 2025.05.02
-
등록일 2024.04.22디도스 클라우드 플레어망 질문..댓글 9
-
등록일 2024.04.03리마전 소스질문입니다.댓글 3
-
등록일 2024.04.01리마전 스턴맞고 튀어나가는 문제 수정댓글 1
관련자료

빨강이쁜이님의 댓글
if(radius < 0) // radius 파라미터로 받은값이 0보다 작으면
result = new ArrayList<L1Object>(19 * 8); // 배열의 값을 19 곱하기 8 로 초기화함
else if(radius == 0) // radius 파라미터로 받은 값이 0과 같으면
result = new ArrayList<L1Object>(2); // 배열을 0,1,2 (3개 0부터 시작하기때문) 초기화함
else // radius 0 이 아니면
result = new ArrayList<L1Object>(radius * 8); // radius 파라미터로 받은 값의 곱하기 8