Wie bereits geschrieben wurde: eine Trennung ist enorm wichtig!
In vielen Rollenspielen wird nicht die Anzahl an Erfahrungspunkten gespeichert, die man seit beginn des jeweiligen Levels gesammelt hat, sondern die Menge, die man über den gesamten Spielverlauf gesammelt hat. Zusätzlich hat man die Informationen darüber, wann der Charakter um ein Level steigt. So ist es sehr einfach möglich, die verbleibende Punktzahl auszugeben, bis man im Level steigt, im Level zu sinken (sofern das Spiel dies zulassen soll, bspw. wenn man Kämpfe verliert) usw.
Mit einer Progressbar alleine wird es schwierig, sollte man den Überhang eines Levelaufstiegs behalten wollen (aktuell 95 EP (von 100) und +10 EP -> Level + 1 und 5 EP).
Wenn es mal mehrere Charaktere gibt, die alle ein aktuelles Level haben und Erfahrungspunkte sammeln, dann bräuchte man für jedes eine ProgressBar, auch wenn man sie eigentlich gar nicht anzeigt. Will man dann von einem Charakter die ProgressBar nicht mehr anzeigen, dafür aber von einem anderen, muss man die entsprechend von der Oberfläche entfernen und hinzufügen.
Nicht zu vergessen, dass eine ProgressBar im Gegensatz zu einer einfachen Variable einen gewissen Overhead mit sich bringt.
@Bambi:
Das Spiel sollte aber nicht unbedingt selbst auf die Änderungen "des" Spielers reagieren. (Was würde man denn machen, wenn es mehrere Spieler gibt?)
Und warum willst du ihm "Listener"-Klassen andrehen? Er arbeitet mit C#, also kann er auch mit Delegates und Events arbeiten!