글쎄, 필자는 스프라이트 시트 (8x8)에서 스프라이트를 취하고 DesignsByZepher의 튜토리얼을 정말 좋아하는 youtube 비디오를 몇 개 보았습니다. 그러나 그가 사용하는 방법은 그에게 소릿대 시트를 가져온 다음 선택한 색상의 코드로 색상을 변경합니다.스프라이트 시트에서 스프라이트 가져 오기
나는 그의 비디오를 시청에서 만든 코드를 렌더링 색상 시트
http://www.youtube.com/watch?v=7eotyB7oNHE를 표시
는http://www.youtube.com/watch?v=6FMgQNDNMJc입니다 :
package exikle.learn.game.gfx;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class SpriteSheet {
public String path;
public int width;
public int height;
public int[] pixels;
public SpriteSheet(String path) {
BufferedImage image = null;
try {
image = ImageIO.read(SpriteSheet.class.getResourceAsStream(path));
} catch (IOException e) {
e.printStackTrace();
}
if (image == null) { return; }
this.path = path;
this.width = image.getWidth();
this.height = image.getHeight();
pixels = image.getRGB(0, 0, width, height, null, 0, width);
for (int i = 0; i < pixels.length; i++) {
pixels[i] = (pixels[i] & 0xff)/64;
}
}
}
이 ^이 이미지를 가져 오는 코드입니다
package exikle.learn.game.gfx;
public class Colours {
public static int get(int colour1, int colour2, int colour3, int colour4) {
return (get(colour4) << 24) + (get(colour3) << 16)
+ (get(colour2) << 8) + get(colour1);
}
private static int get(int colour) {
if (colour < 0)
return 255;
int r = colour/100 % 10;
int g = colour/10 % 10;
int b = colour % 10;
return r * 36 + g * 6 + b;
}
}
^그리고 모든 색상을 다루는 것으로 생각되는 코드는 이것에 대해 다소 혼란 스럽습니다.
제 질문은 색상 수정자를 제거하고 스프라이트 시트를 그대로 가져 와서 표시하는 방법입니다. 그래서 이미있는 색상으로 표시됩니까?