ScoreUtils introduit deux classes :
TPlayerScore, contenant basiquement le nom (string) et le score (int64) d'un joueur
TPlayerScores, composant type Liste contenant tout les scores des joueurs. Les scores sont automatiquement triés du plus grand (index 0) au plus petit (index N) a l'ajout d'un ou plusieurs scores.
TPlayerScores permet egalement de lire ou sauver un fichier ".scores" de type INI (voir entête de ScoreUtils pour la structure).
Pour utiliser TPlayerScores nul besoin de declarer une variable et d'en creer une instance, utiliser les variables automatiquement créées a l'initialisation et detruite a la finalisation de l'unité.
Ces variables sont Scores et son alias PlayerScores.
Choix du Int64 comme sotckage du score :
int64 est un type assé simple pouvant contenir 2 integer, 4 word, 8 bytes, 1 double, 2 single.
de quoi satisfaire vos besoin, on peu imaginer des structures tel :
type
bits64rec = record
case integer of
0: (i64 : int64);
1: (i8 : array[0..7] of shortint);
2: (i16 : array[0..3] of smallint);
3: (i32 : array[0..1] of longint);
4: (ui64 : UInt64);
5: (ui8 : array[0..7] of byte);
6: (ui16 : array[0..3] of word);
7: (ui32 : array[0..1] of longword);
8: (fl64 : double);
9: (fl32 : array[0..1] of single);
end;
exemple :
data [[Niveau de difficulté 1][Level atteint 1][Temps en secondes 2][Score total 4]]
NiveauDeDifficulté := bits64rec(Scores.Items[N].PlayerScore).ui8[0];
LevelAtteint := bits64rec(Scores.Items[N].PlayerScore).ui8[1];
TempsEnSecondes := bits64rec(Scores.Items[N].PlayerScore).ui16[1];
ScoreTotal := bits64rec(Scores.Items[N].PlayerScore).ui32[1];
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.