자바 Swing Graphics 이미지 그리기 및 밝기 변화를 이용한 애니메이션 효과


/**
 *
 * @param g - Graphics의 객체
 * @param imgStr - 이미지 파일 이름
 * @param str - 이미지 위에 띄울 멘트
 */
private void drawMyImg(Graphics g, String imgStr, String str) {
    setBackground(Color.white);
    Image img = loadImage(imgStr);
    g.drawImage(img, 0, 0, m_width, m_height, this);
    setBright(g, str);
}

/**
 * 이미지 불러오기
 * @param name - 이미지 파일이름
 * @return - 이미지 객체
 */
private Image loadImage(String name) {
    Image result = null;
    MediaTracker tracker = new MediaTracker(this);

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    result = toolkit.getImage(name);
    tracker.addImage(result, 0);
    try {
        tracker.waitForAll();
    } catch (InterruptedException e) {
        return null;
    }

    return result;
}

/**
 * 밝기정보 변화 및 글자 그리기(애니메이션 효과)
 * @param g - Graphics의 객체
 * @param str - 화면에 띄울 문자
 */
private void setBright(Graphics g, String str) {
    int brightness = (int)(256 - 256 * percentage);

    g.setColor(strColor);

    g.drawString(str, m_width/2-(str.length()/2)*mulSize, str_height);
    g.setColor(new Color(255,255,255,brightness));

        g.fillRect(0, 0, getWidth(), getHeight());
        percentage += 0.01f;
        try {
            Thread.sleep(sleepTime);
        } catch (Exception e) {

        }
        if (percentage > 0.99f) {
            step++;
            percentage=initPercentage;
            try {
                Thread.sleep(sleepLastTime);
            } catch (Exception e) {

            }
        }
        repaint();
}

자바 음향효과(BGM)


AudioClip clip;
try {
    File file = new File("resources/bgm/bgm.wav");
    clip = Applet.newAudioClip(file.toURL());
    clip.play();
} catch (Exception e) {
    e.printStackTrace();
}

Pagination