|
Posté le 03-10-2018 à 19:38 | #
|
Je pense que tu as raison, on ne doit pas pouvoir mettre d'accent en Mode Text ! Mais des majuscules si.
Pour les maps tu as l’embarras du choix ! Le plus simple/rapide mais pas le plus économe en mémoire c'est de mettre tous tes 21*7 caractères dans une Str (donc une Str par map). Ensuite tu utilises tout simplement une boucle For avec A allant de 0 à 6, qui affiche ligne A+1 les caractères de la Str dont l'index est compris entre 21A+1 et 21(A+1) en utilisant la fonction StrMid().
Comme ça tu n'auras plus qu'un seul et unique Locate dans tout ton sous programme de map !
"[ta map ligne par ligne]"-> Str1
For 0->A To 6
Locate 1,A+1,StrMid(Str 1,21A+1,21(A+1))
Next
L'algo ne prend que 40 octets et une map en prend 156 (contre environ 224 actuellement).
Après ça ce n'est que pour l'affichage, mais tu peux très bien faire un nouveau moteur de déplacement qui scrute la Str de la map plutôt qu'une Matrice (qui prend de la place !). En effet, connaissant la position (A, B) de ton joueur tu peux très bien savoir "où il est dans la Str" et vérifier si le caractère qu'il a devant lui dans la direction que le joueur a choisi est un PNJ ou un mur (fonction StrComp()) ! |
|
|
Posté le 04-10-2018 à 07:57 | #
|
Résolvant par la même occasion le problème de la case libérée par le PNJ qui était resté inaccessible, bien joué Ne0tux |
|
|
Posté le 04-10-2018 à 17:12 | #
|
@Hackcell : non, ca mon moteur de jeu le gère aussi, c'est juste que j'avais oublié de le faire |
|
|
Posté le 04-10-2018 à 18:16 | #
|
Oui, mais avec cette méthode, tu n'as même plus besoin d'y penser, donc une source d'erreur humaines en moins |
|
|
Posté le 04-10-2018 à 18:23 | #
|
Et un gain de place monstrueux parce qu'actuellement ses textes sont affichés ligne par ligne et doublés par une matrice... |
|
|
Posté le 03-12-2018 à 20:45 | #
|
bonjour ! alors je me suis remis a l'optimisation de SnowCrash ! et je suis bloqué dans la méthode à employer pour changer d'écrans comme dans la première version du jeu .
En effet, le déclenchement des events comme par exemple les collisions ou les dialogues se font grâce a la détection d'un caractère particulier dans une Str. Mais pour l'event du changement de map, ca serait moche de faire une rangée d'un seul et même caractère sur tous les bords de l'écran pour déclencher l'event...
Donc voila : auriez vous des idées ? |
|
|
Posté le 18-12-2018 à 12:48 | #
|
Considérer un changement de map comme autre chose qu'un event. Au moment où tu évalues la position du joueur, si elle sort des bords, alors tu changes de map... Ça ne me parait pas très dur à mettre en place ! |
|
|
|
|
Posté le 18-12-2018 à 20:42 | #
|
merci les amis !
j'ai tous les outils en main maintenant ! je pense que la mise à jour du Chapitre 1 ne devrait plus tarder à arriver ( enfin, compter les vacances scolaires + quelques jours ). |
|