3年ぶりに(基本的な)アニメーションJAppletを作成できたのですが、動くと画像がちらつくのが気になります。Timer オブジェクトは画像を動かすものであり、私のプライベートな内部クラス「TimerListener」は動画のアニメーション モーションを担当します。
これが私の TimerListener クラスのコードです。この問題は解決できると思います。
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(smileyFace.getImage(), xCoord, yCoord, this);
}
private class TimerListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
//Following if-else manipulates Y coordinate
if (goingUp) {
if (yCoord > minY) {
yCoord -= move;
}
else {
goingUp = false;
}
} else {
if (yCoord < (getContentPane().getHeight() - (smileyFace.getIconHeight()+ Y_OFFSET))) {
yCoord += move;
}
else {
goingUp = true;
}
}
//Following if-else manipulates X coordinate
if (goingSideways) {
if (xCoord > 0) {
xCoord -= move;
}
else {
goingSideways = false;
}
} else {
if (xCoord < (getContentPane().getWidth() - (smileyFace.getIconWidth() + X_OFFSET))) {
xCoord += move;
}
else {
goingSideways = true;
}
}
repaint();
}
}
それが役立つ場合は、これが私の JApplet のスクリーンショットです。この場合、トロールの顔は黒い領域で移動し、側面に当たると跳ね返ります。
JApplet を実行してテストしたい場合は、https: //github.com/rattfieldnz/Java_Projects/tree/master/JAppletAnimation から Netbeans プロジェクトを入手できます。