0

白から黒に色が変わるタイマーがありますが、いくつか問題があります。

RGB 値を表す int の配列があります。

100ms ごとに実行され、配列内の RGB 値を減らすタイマーがあります。

私が抱えている問題は、真ん中に緑、黄色、赤などの他の色になってしまうことです.

私がやろうとしているのは、白から黒にフェードすることです。そのため、タイマーが実行されると、色が異なるグレーの色合いになる必要があります。

4

1 に答える 1

0

グローバル変数を宣言して呼び出しますfading

Color fading = Color.white;

あなたのタイマーの本体で:

if(fading.getRed()>0){
    fading = new Color(fading.getRed()-1,fading.getGreen()-1,fading.getBlue()-1);
    //do whatever you have to do with your fading color
}

タイマーがこのコードを実行するたびに、RGB 値が白から黒に減少します。

結果:

LOOP NO | COLOR
       1: R=255, G=255, B=255
       2: R=254, G=254, B=254
       3: R=253, G=253, B=253
       4: R=252, G=252, B=252
       5: R=251, G=251, B=251
       6: R=250, G=250, B=250
        .
        .
        .
     255: R=0,   G=0,   B=0

編集

例:

import java.awt.Color;

public Class YourClass{

    Color fading = Color.white;

    public YourClass(){
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                if (fading.getRed() > 0) {
                    fading = new Color(fading.getRed() - 1, fading.getGreen() - 1, fading.getBlue() - 1);
                    //do other stuff here
                }
            }
        };

        Timer timer = new Timer();
        timer.scheduleAtFixedRate(task, 0, 100);
    }
}
于 2013-04-20T20:41:30.820 に答える