Я пытаюсь сделать вступление к игре, которую я делаю. поэтому у меня есть красивый маленький бело-серый логотип, который я хочу добавить, а затем исчезнуть.
Я использую AlphaComposite, чтобы добавить его, и он прекрасно работает. Но я не могу заставить это исчезнуть должным образом. Лучшие результаты, которые я получил, - это то, что логотип стал белым, а худший - черный экран.
Вот код, который я запускаю.
Некоторые из них могут быть излишними. но чего мне здесь не хватает Я пробовал разные комбинации настроек AlphaComposite. Но они немного над моей головой.
Любые намеки на простое для понимания описание будут высоко оценены, и хорошее объяснение того, почему ваш ответ является правильным, также будет хорошим :)
private void intro(int duration)
{
Image introScreen = new ImageIcon("src\\Img\\Logo.png").getImage();
Graphics2D g = s.getGraphics();
for (int i = 0; i <= 200; i++)
{
int reverse = 100;
if (i <= 100)
{
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_IN, i * 0.01f));
g.drawImage(introScreen, 0, 0, null);
s.update();
}
else
{
g.setColor(Color.BLACK);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_IN, reverse * 0.01f));
g.drawRect(0, 0, s.getWidth(), s.getHeight());
s.update();
reverse--;
}
try
{
Thread.sleep(duration / 200);
// TODO Remove hardcoding
}
catch (Exception ex)
{
// TODO Add Exception Handling
}
}
g.dispose();
}