내 문제는 과거의 텍스처를 HashMap의 위치로 키로 저장하는 리소스 로더를 만드는 중입니다. 패키지 외부의 이미지를로드 할 때 완벽하게 작동하지만 내부 이미지를로드하려고하면 저장되지 않습니다. 내가 외부 로딩이 완벽하게 문제 자사의 단지 내부로드를 작동 말했듯이HashMap 항목을 저장하지 않음
이 내 자원 로더
public Map<String,BufferedImage> loads = new HashMap<String,BufferedImage>();
public BufferedImage loadImage(String imagePath){
BufferedImage temp = new BufferedImage(9, 16, BufferedImage.TYPE_INT_RGB);
String location = imagePath.replaceAll("[.]", "/");
location += ".png";
//internal
if(location.startsWith("CLASS_")){
if(loads.get(location) != null){
System.out.println("OLD");
return loads.get(location);
}else{
location = location.replaceAll("CLASS_", "");
try{
temp = ImageIO.read(this.getClass().getClassLoader().getResource("net/minegeek360/platformer/assets/"+location));
loads.put(location, temp);
}catch(Exception e){System.err.println("CANT LOAD IMAGE");}
System.out.println("NEW | "+temp);
}
//external
}else{
try{
if(loads.get(location) != null){
//System.out.println("LOADED ORIGIONAL IMAGE");
return loads.get(location);
}else{
temp = ImageIO.read(new File("assets/textures/"+location));
//System.out.println("LOADED NEW IMAGE");
}
}catch(Exception e){ e.printStackTrace(); }
loads.put(location, temp);
}
return temp;
}
내 코드입니다. BufferedImages가 문제가 아니라는 것을 알기 때문에 모든 이미지를 올바르게로드합니다. 그래서 그 이미지가 HashMaps라고 생각합니다.
예외가 있습니까? –
번호 그냥 이상한 – Minegeek360
디버거는 내부에있는 것을 맵에 넣는 지점에 무엇을 보여줄까요? –