타이머가 실행될 때마다 타이머 내부에서 실행되는 코드가 더 빠르게 실행됩니다. 왜 이런 일이 일어나는 걸까요?Java 타이머가 모든 실행 속도 향상
이 코드는 본질적으로 프레임을 가로 지르는 레이블 (이미지 보유)을 이동합니다. 매번 실행하면 이미지가 더 빨리 이동합니다.
제 실행에if (Player.direction == "west") {
timerWest.start();
isCasting = true;
new Magic("westmagic.gif");
timerWest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x = Frame.fireMagicLabel.getX();
int y = Frame.fireMagicLabel.getY();
Frame.fireMagicLabel.setLocation(x - 1, y);
LiveUpdating.updateSpell();
CheckHits.spellHit();
Frame.frame.repaint();
if (Frame.fireMagicLabel.getX() <= tempWest) {
timerWest.stop();
new Magic("");
Frame.frame.repaint();
Frame.fireMagicLabel.setLocation(
Frame.redHealthLabel.getX(),
Frame.redHealthLabel.getX());
isCasting = false;
}
}
});
Frame.frame.repaint();
}
는 타이머 배속을 행한다. 그런 다음 다음 실행은 더 빠르고 더 빠르고 더 빠르게 수행됩니다.
나는 한 번만 액션 리스너를 추가해야한다고 생각한다. – happymeal
@happymeal : 대답 해주세요. –
또한, '=='를 사용하여 문자열을 비교하지 말고'equals (...) '메서드를 사용하십시오. –