Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Pygame] Ecrire dans la fenêtre pygame

3 mai 2015 à 21:08:47

Bonjour, je voudrais rendre l'utilisateur de mon jeu capable d'écrire directement dans la fenêtre de pygame, plutôt que de devoir passer par la console windows. 

Dans l'idée ce serait une barre classique dans laquelle on peut écrire.

Pouvez-vous m'indiquer des pistes ou des liens de programmes similaires ?

Merci

  • Partager sur Facebook
  • Partager sur Twitter
4 mai 2015 à 0:59:29

Une barre je sais pas mais du texte oui :

import pygame
from pygame.locals import *

pygame.init()

fenetre = pygame.display.set_mode((1366, 768))

font=pygame.font.Font(None, 24)
text = font.render("Texte",1,(255,255,255))

continuer = 1

while continuer:

    for event in pygame.event.get():
        if event.type == QUIT:
            continuer = 0

    fenetre.blit(text, (300, 300))

    pygame.display.flip()

pygame.quit()



  • Partager sur Facebook
  • Partager sur Twitter
4 mai 2015 à 11:23:52

Sur Pygame je ne connais pas les modules, mais sur tkinter en tout cas tu as 2 class faites pour ça : Text et Entry.

Il y a une différence entre les 2, la class Text permet à l'utilisateur d'écrire dans le champ de texte, c'est une méthode qui est très peu utilisé car elle n'a pas grande utilité, la class Text s'utilise en général pour afficher du texte que toi tu programmes, et qui ne seras pas modifiable par l'utilisateur, il pourra juste lire ce texte.

La class Entry en revanche, et je pense que c'est ce que tu cherche à faire, fait exactement l'équivalent du input en console, elle donne un champ de saisie à l'utilisateur, et peut capturer sa réponse, en liant l'appui de la touche entrée par exemple sur cette barre de saisie, à une fonction qui va mémoriser ce qu'a rentré l'utilisateur et l'afficher.

Il doit très certainement y avoir l'équivalent en pygame, mais je ne le connais pas, mais tu dois pouvoir trouver ça sur internet.

  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2017 à 14:56:54

Déjà grandement merci BreizhRyder pour ton message.

Mais si l'on souhaite y afficher le résultat d'un calcul, on fait comment ?

Exemple:

nombre1 = 2

nombre2 = 8

Je souhaite afficher nombre1 + nombre2

En fait j'ai eu ma réponse ici:

https://openclassrooms.com/forum/sujet/python-int-en-string-80170

Il suffit donc de faire str(nombre 1 + nombre 2)

-
Edité par luckykamon 7 mai 2017 à 18:05:03

  • Partager sur Facebook
  • Partager sur Twitter
10 août 2018 à 9:53:30

Sous pygame tu peux utiliser dans la boucle for:

pygame.key.name(event.key) => (str)name of key

la boucle c'est ça, pour le event:

for event in pygame.event.get()
Et après tu fais un string additionnel:

varAdditionnel = ""
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        varAdditionnel = varAdditionnel + pygame.key.name(event.key)
return varAdditionnel
  • Partager sur Facebook
  • Partager sur Twitter
16 février 2021 à 11:28:17 - Message modéré pour le motif suivant : Les insultes ne sont pas tolérées


16 février 2021 à 12:49:43

@JérémyCala Bonjour, les insultes gratuites ne sont pas tolérée, je vous bannis.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter