|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object greenfoot.UserInfo
public class UserInfo
Die Klasse UserInfo kann zum permanenten Speichern von Daten auf einem Server und zum Teilen dieser
Daten mit anderen Nutzern benutzt werden, falls das Szenario auf der offiziellen Greenfoot Webseite ausgeführt wird.
Beispielsweise können mit dieser Klasse High-Score Tabellen implementiert werden.
Der Speicher kann nur von registrierten Mitgliedern benutzt werden. Deshalb muss man immer zunächst mit
UserInfo.isStorageAvailable()
prüfen, ob der Speicher genutzt werden kann.
Zur Verdeutlichung hier eine mögliche Implementation eines Highscores:
if (UserInfo.isStorageAvailable()) {
UserInfo myInfo = UserInfo.getMyInfo();
if (newScore > myInfo.getScore()) {
myInfo.setScore(newScore);
myInfo.store(); // Speichern auf dem Server
}
}
Zum Empfangen von Benutzerdaten stehen verschiedene Methoden zur Verfügung, wie zum Beispiel
getMyInfo()
, die Informationen über den aktuellen Benutzer liefert, getTop(10)
, die die Besten
zurückliefert, und getNearby(10)
, welche vergleichbare Nutzer zurückliefert.
Als Speicherplatz stehen für jeden Benutzer ein Spielstand, zehn zusätzliche Integer und fünf Strings (maximal 50
Zeichen lang) zur freien Verfügung. Desweiteren kann der Benutzername und das Benutzerbild von den Benutzerdaten empfangen
werden.
Zum offline Testen kann der Benutzername in den Einstellungen gesetzt werden (Strg-Shift-P / Cmd-Shift-P).
Dadurch können während der Entwicklung verschiedene Benutzer simuliert werden. Sobald die Applikation auf
der offiziellen Greenfoot Webseite ausgeführt wird, wird der Benutzername zum Einloggen auf der Seite benutzt.
Field Summary | |
---|---|
static int |
NUM_INTS
Die Anzahl der speicherbaren Integer Zahlen. |
static int |
NUM_STRINGS
Die Anzahl der speicherbaren Strings. |
static int |
STRING_LENGTH_LIMIT
Die maximale Länge eines zu speichernden Strings. |
Constructor Summary | |
---|---|
UserInfo()
|
Method Summary | |
---|---|
int |
getInt(int index)
Gibt den Integer am entsprechenden Index (0 bis NUM_INTS -1, inklusiv) zurück. |
static UserInfo |
getMyInfo()
Gibt die gespeicherten Daten für den Benutzer zurück. |
static List |
getNearby(int maxAmount)
Gibt eine sortierte Liste mit UserInfo Objekten zurück, welche den aktuellen Benutzer umgeben. |
int |
getRank()
Gibt den aktuellen Rang des Benutzers für dieses Szenario zurück. |
int |
getScore()
Gibt den Spielstand des Benutzers. |
String |
getString(int index)
Gibt den String am entsprechenden Index (0 bis NUM_STRINGS -1, inklusiv) zurück. |
static List |
getTop(int maxAmount)
Gibt eine sortierte Liste mit UserInfo Objekten zurück, welche die Benutzer mit der besten Score beschreiben. |
GreenfootImage |
getUserImage()
Gibt das Benutzerbild zurück. |
String |
getUserName()
Gibt den Benutzernamen des zum Speicher gehörenden Benutzers an. |
static boolean |
isStorageAvailable()
Prüft, ob Speicher verfügbar ist. |
void |
setInt(int index,
int value)
Setzt den Wert value am entsprechenden Index (0 bis NUM_INTS -1, inklusiv). |
void |
setScore(int score)
Setzt den Spielstand des Benutzers. |
void |
setString(int index,
String value)
Setzt den String value am entsprechenden Index (0 bis NUM_STRINGS -1, inklusiv). |
boolean |
store()
Speichert die Daten auf dem Server. |
Methods inherited from class |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int NUM_INTS
Field values
,
Constant Field Valuespublic static final int NUM_STRINGS
Field values
,
Constant Field Valuespublic static final int STRING_LENGTH_LIMIT
Field values
,
Constant Field ValuesConstructor Detail |
---|
public UserInfo()
Method Detail |
---|
public int getInt(int index)
public static UserInfo getMyInfo()
null
zurück, falls:
null
abfangen können.
null
falls ein Problem vorliegt.public static List getNearby(int maxAmount)
getScore()
absteigend sortiert. Der Parameter bietet die Möglichkeit die maximale Länge der
zurückgegebenen Liste zu bestimmen. Falls euer Szenario viele Benutzerdaten gespeichert hat, kann
es sowohl zeitintensiv als auch trafficintensiv sein, alle Benutzerdaten zu empfangen. Meistens werden außerdem
weniger Benutzerdaten benötigt.
Die UserInfo Objekte beschreiben die Benutzer, die den aktuellen Benutzer umgeben, sprich relativ
vergleichbar sind. Dabei wird der aktuelle Benutzer in der Liste mit eingeschlossen sein. Der aktuelle
Benutzer ist jedoch nicht zwingend mittig in der Liste. Auch wenn die Chance sehr hoch ist, wird zum
Beispiel für den Zweitbesten mit dem Aufruf getNearby(7)
eine Liste zurückgeliefert, in der
das UserInfo Objekt des aktuellen Benutzers nicht mittig, sondern relativ weit vorne liegt.
Falls ihr die Highscore der vergleichbaren Benutzer anzeigen lassen wollt, könnt ihr zum Beispiel erst die Daten mit
setScore(score)
und store()
speichern und mittels getNearby(10)
den Punktestand der zehn vergleichbarsten Benutzer erfragen.
Gibt null
zurück, falls:
null
verarbeiten können.
maxAmount
- Die maximale Anzahl an zu empfangenen UserInfo Objekten. Das Übergeben von 0 oder einer
negativen Zahl liefert sämtliche Benutzerdaten zurück, beachte allerdings den Hinweis weiter oben.
null
, falls ein Problem vorliegt.public int getRank()
public int getScore()
public String getString(int index)
public static List getTop(int maxAmount)
getScore()
absteigend sortiert. Der Parameter bietet die Möglichkeit die maximale Länge der
zurückgegebenen Liste zu bestimmen. Falls euer Szenario viele Benutzerdaten gespeichert hat, kann
es sowohl zeitintensiv als auch trafficintensiv sein, alle Benutzerdaten zu empfangen. Meistens werden außerdem
weniger Benutzerdaten benötigt.
Falls ihr den Highscore der besten Benutzer anzeigen lassen wollt, könnt ihr zum Beispiel erst die Daten mit
setScore(score)
und store()
speichern und mittels getTop(10)
die zehn besten Benutzer erfragen.
Gibt null
zurück, falls:
null
verarbeiten können.
maxAmount
- Die maximale Anzahl an zu empfangenen UserInfo Objekten. Das Übergeben von 0 oder einer
negativen Zahl liefert sämtliche Benutzerdaten zurück, beachte allerdings den Hinweis weiter oben.
null
, falls ein Problem vorliegt.public GreenfootImage getUserImage()
public String getUserName()
public static boolean isStorageAvailable()
false
zurückliefert, sollte das Szenario ohne Speichernutzung fortfahren.
public void setInt(int index, int value)
value
am entsprechenden Index (0 bis NUM_INTS -1, inklusiv).
Zum permanenten Speichern muss später die Methode store()
aufgerufen werden.
public void setScore(int score)
if (latestScore > userData.getScore())
{
userData.setScore(latestScore);
}
Andernfalls wird jeder vorherige Wert überschrieben.
Zum permanenten Speichern muss später die Methode store()
aufgerufen werden.
public void setString(int index, String value)
value
am entsprechenden Index (0 bis NUM_STRINGS -1, inklusiv).
Das Übergeben von null
als Wert erzeugt einen leeren String. Der übergebene String
value
darf maximal STRING_LENGTH_LIMIT Zeichen lang sein.
Zum permanenten Speichern muss später die Methode store()
aufgerufen werden.
public boolean store()
getMyData()
empfangen worden sind). Das Speichern von Daten für fremde Benutzer wird nicht
funktionieren.
true
, falls erfolgreich gespeichert wurde, false
, falls ein Problem vorliegt
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |