Is there any way to get text/char input that takes shift ctrl etc into account when returning the character? and also returns space as " " and not as the word?
public boolean checkKey(String key) {
if (key == null) if (Greenfoot.getKey() != null) return true; else return false;
if (Greenfoot.isKeyDown(key)) {
if (! pressed_keys.contains(key)) {
pressed_keys.add(key);
return true;
}
}
else {
pressed_keys.remove(key);
}
return false;
}
public String getCurrentKey() {
String key = Greenfoot.getKey();
if (!checkKey(key)) return "";
if (key.equals("shift") ||
key.equals("control") ||
key.equals("enter") ||
key.equals("tab") ||
key.equals("backspace") ||
key.equals("up") ||
key.equals("down") ||
key.equals("left") ||
key.equals("right") ||
key.equals("escape")
) return "";
for (int i = 0; i < 12; i ++) {
if (key.equals("F"+i)) return "";
}
if (key.equals("space")) return " ";
if (Greenfoot.isKeyDown("shift")) {
return key.toUpperCase();
}
else return key;
}String someString = "";
//...
String key = Greenfoot.getKey();
if (key != null)
{
if ("space".equals(key)) someString += " ";
//else if ("...what ever you also want to do something special...".equals(key)) ...
else if (key.length() > 1) {} //ignore everything else with more than a single character
else someString += key;
}