As the title says, I am having trouble getting the black keys space evenly without hard coding it. If anyone could help it would be greatly apreciated.
Here is my code :
public class Piano extends World { private String[] whiteKeys = { "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "\\" }; private String[] whiteNotes = { "3c", "3d", "3e", "3f", "3g", "3a", "3b", "4c", "4d", "4e", "4f", "4g" }; private String [] blackKeys = { "w", "e", "", "t", "y", "u", "", "o", "p", "", "]" } ; private String [] blackNotes = { "3c#", "3d#", "", "3f#", "3g#", "3a#", "", "4c#", "4d#", "", "4f#" }; /** * Make the piano. This means mostly, apart from defining the size, * making the keys and placing them into the world. */ public Piano() { super(800, 340, 1); makeKeys(); createMessage(); } /** * Create the piano keys and place them in the world. */ private void makeKeys() { for(int i = 0; i < whiteKeys.length; i++) { Key key = new Key(whiteKeys[i], whiteNotes[i]+".wav", "white-key.png", "white-key-down.png"); addObject(key, i *key.getImage().getWidth() + key.getImage().getWidth(), key.getImage().getHeight() / 2); } for(int i = 0; i < whiteKeys.length-1; i++) { if( ! blackKeys[i].equals("") ) { Key key = new Key(blackKeys[i], blackNotes[i]+".wav", "black-key.png", "black-key-down.png"); addObject(key, i *key.getImage().getWidth() + key.getImage().getWidth() * 2, key.getImage().getHeight() / 2); } } } public void createMessage() { GreenfootImage bg = getBackground(); bg.drawString("Use keys 'a' to ':' and keys 'q', 'e', 't', 'y', 'u', 'o', 'p', ] to play the piano", 225, 300); } }