2011-05-18 8 views

Répondre

2

Je suis presque sûr que c'est impossible. Si vous voulez une console dans un écran Pygame, vous devrez écrire la vôtre, ou en trouver une écrite par quelqu'un d'autre (par exemple http://pygame.org/project-pygame-console-287-.html)

+0

++. L'implémentation d'une console de base est beaucoup plus facile que ça en a l'air. –

+0

Pourriez-vous me donner un exemple de code pour implémenter une console de base? J'essaie d'utiliser la bibliothèque pyGame-console, mais je semble avoir des problèmes de compatibilité avec 3.1 – Declan

+0

Je n'ai jamais essayé d'implémenter une console dans Pygame - j'avais supposé que ce serait difficile. Mais si Eli dit que c'est plus facile que ça en a l'air, je pourrais essayer plus tard. Cela ressemble à un projet intéressant. –

0

Pour votre jeu, vous pouvez utiliser subsurface, pour les différentes sections de l'écran . L'utilisation de python 3x posera des problèmes avec plusieurs bibliothèques, qui ne sont pas précompilées pour vous. Si vous le pouvez, il va simplifier les choses à utiliser 2.7 ou 2.6. (Il y a un binaire python2.7, mais pas sur la première page)

Une console n'est pas trop dure. Vous devez décomposer les composants, décider de ce dont vous avez besoin. Commencez avec un miniprojet, en implémentant les fonctionnalités une à la fois.

  1. entrée du clavier, des lettres d'impression à la console
  2. imprimer le texte à partir d'une chaîne
    1. texte blit mises en cache. ci contiendra le code de démonstration plus tard, si vous êtes intéressé
  3. dict() de chaînes, pour les commandes, avec les valeurs des noms de fonction.
  4. tirer les 10 dernières lignes de texte
  5. haut = faire défiler l'historique des commandes
  6. permettent d'alias de commande, comme « n » et « nord » pointera vers move_north
    1. Mettre en œuvre cette aide d'une classe: Commande (). Qui stocke une liste de tous les alias.

commandes = { "n": move_north, "s": move_south, "fps": toggle_fps, "aide": print_help}

Sur entrer, appelez la valeur de la dict, si la clé existe:

if cmd in commands: 
    commands[cmd]() 
    # same as commands["n"]() 

Vous pourriez même avoir la fonction print_help() de la console en utilisant la fonction docstrings.

Questions connexes