2010-11-05 2 views
1

Je commence à essayer de faire de simples jeux de console en C++ avec des malédictions, et mon premier projet est juste une grande pièce dans laquelle marcher. Je pense que je vais implémenter la marche en faisant enregistrer le programme par le programme que le personnage marche, alors quand il marche sur le prochain carré, il peut restaurer tout ce qui était là. Le problème est, je ne sais pas comment sauver le personnage à une certaine position à une variable, et à ma grande surprise, je ne peux pas trouver de documentation complète de curses. Je suis à la recherche d'une fonction comme ceci:Comment sauvegarder le personnage occupant un certain espace dans les sorts?

int storage = mvsavechar(1,1);

Est-ce une telle fonction existe?

Répondre

1

Vous cherchez mvinch():

int storage = mvinch(1, 1) & A_CHARTEXT; 
+0

Merci, ressemble exactement à ce dont j'ai besoin! – Maulrus

0

Je stocke l'état de l'écran dans un tableau de char 80x24 (ou quelque chose). Mais vous devrez probablement dimensionner le tableau pour qu'il corresponde aux dimensions de votre "grande pièce". Si la pièce était extrêmement grande, vous pouvez stocker l'équivalent d'un tableau clairsemé en utilisant (par exemple) une liste chaînée de coordonnées & contenu.

Les curses n'ont probablement pas la fonction que vous souhaitez car les premiers terminaux n'ont probablement pas la possibilité d'être interrogés sur le contenu de l'écran. Je ne sais pas grand-chose sur les malédictions, ce que vous voulez pourrait être possible si les malédictions maintenaient les détails du contenu de l'écran - mais cela semble très improbable.

0

Vous aurez besoin de stocker les données pour la pièce dans une sorte de structure de données dans votre programme. Curses est une bibliothèque de sortie.

+0

Je comprends, mais je veux essayer mon chemin en ce moment: l'impression de la sortie et la commutation des personnages que le lecteur navigue. Quand il devient assez complexe que j'ai besoin de stocker l'état de toute la pièce, je vais commencer à le faire. – Maulrus

Questions connexes