そのため、現在、Key クラスは白鍵のみを生成できます。これは、キー イメージのファイル名 (「white-key.png」および「white-key-down.png」) をハードコーディングしたためです。抽象化を使用して Key クラスを変更し、白鍵または黒鍵のいずれかを表示できるようにするにはどうすればよいですか?
import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
public class Key extends Actor
{
private boolean isDown;
private String key;
private String sound;
/**
* Create a new key.
*/
public Key(String keyName, String soundFile)
{
key = keyName;
sound = soundFile;
}
/**
* Do the action for this key.
*/
public void act()
{
if ( !isDown && Greenfoot.isKeyDown(key))
{
play();
setImage("white-key-down.png");
isDown = true;
}
if ( isDown && !Greenfoot.isKeyDown(key))
{
setImage("white-key.png");
isDown = false;
}
}
/**
* Play the note of this key.
*/
public void play()
{
Greenfoot.playSound(sound);
}
}