Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#201 Le 09/11/2011, à 17:13

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Ce que j'ai vu sur Internet, c'est l'annulaire, mais ça me semble étrange quand je pose mes doigts sur le clavier.
Pour ma part, j'utilise surtout Alt Gr avec le @ et naturellement, c'est mon pouce qui se pose sur Alt gr et mon index sur @ (placé sous le 0). Mon responsable a la même idée que moi.

Pour la touche Shift  et la touche CTRL, j'utilise surtout l'annulaire (et parfois le majeur) en combinaison avec les lettres, mais je crois que l'auriculaire est préférable.

Si ça vous semble cohérent, je ferai le changement sur mon fichier svg et les images du picasaweb.

Hors ligne

#202 Le 11/11/2011, à 00:06

lavievit

Re : Faire une animation sur la création de jeux vidéo libres

Ce que vous proposez Doudoulolita me semble plus cohérent que ce que je vois et lis sur Internet. La position de l'auriculaire facilite les déplacements, plus que l'annulaire qui est moins souple.

À ce jour, j'ai changé le clavier pour chaque touche dans Méli-mémo, de même pour Boite aux lettres, j'ai retravaillé des images dans le jeu de pairage et embellit les pages-titres.

Je n'arrive pas encore à bâtir une nouvelle île. Je ne sais pas par où commencer. En attendant d'y voir clair je retravaille les jeux pour l'île 2.


la vie commune-ô-terre

Hors ligne

#203 Le 18/11/2011, à 21:38

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

J'ai potassé un peu plus en détails le tutoriel de Renpy (traduit en français sur le site de Jnavigue) et vu qu'on pouvait insérer des jeux pygame dans les programmes réalisés avec Renpy, grâce à Renpygame.
Avis aux connaisseurs ! smile

Ce que je ne sais pas encore, c'est si Jnavigue utilise cette possibilité.

Pour l'instant, je vais tester un peu plus les possibilités de Renpy avant de me lancer dans mon idée de jeu pour Jnavigue:
- plan d'une maison puis d'une ville en fond
- donner un endroit où se rendre par oral (son) ou par écrit.
- L'utilisateur doit se rendre à cet endroit grâce aux flèches du pavé directionnel.

C'est un peu comme les labyrinthes de Gcompris, mais pour quelqu'un qui apprend le français, il doit reconnaître le nom du lieu et éventuellement le trajet à suivre.

Dernière modification par doudoulolita (Le 18/11/2011, à 21:44)

Hors ligne

#204 Le 18/11/2011, à 21:57

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Par rapport à Gcompris, j'ai proposé à son créateur Bruno Coudoin une idée de jeu et il m'a demandé d'essayer de le réaliser.
Cette idée vient des institutrices de maternelles qui viennent avec leur classe faire de l'informatique: un jeu des intrus. J'avais fait une version très simple pour Tuxpaint.

Sur un décor, on doit positionner des animaux qui correspondent à l'environnement et effacer ceux qui ne collent pas à l'endroit (campagne, mer, montagne, ferme, savane, etc.).
Sur Gcompris, un jeu correspond vaguement à ça, ça s'appelle babyshapes. C'est une peinture sur laquelle il y a des éléments en blanc (ou des formes en couleurs) et l'enfant doit recomposer l'image avec les morceaux placés sur le côté.
Voilà mon premier essai basé sur babyshapes : intruders-activity.zip mais ça ne marche pas encore. sad
On placera les animaux au bon emplacement, et ceux qui ne "collent" pas à l'ambiance iront dans un cadre rouge:

résultat attendu pour le jeu des intrus pour Gcompris

Le décor est de moi et les animaux des tampons de Tuxpaint, tout simplement. Au départ du jeu, il n'y a que le background et éventuellement des points de placement (ronds rouge et noirs), les animaux sont à gauche dans un cartouche à part (non visible ici).

Dernière modification par doudoulolita (Le 18/11/2011, à 22:00)

Hors ligne

#205 Le 19/11/2011, à 20:55

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

J'ai réalisé un mini-jeu avec Renpy: maison.zip

Les images proviennent de wikimedia commons ( http://www.alentours.com/propositions_u … images.txt )

J'ai réussi quelques manipulations d'images simples + leur placement exact.

Ceci coupe l'image en deux et la place à droite de l'écran:

image facade1 base = "facade.jpg"
image facade1 droite = im.Crop("facade.jpg",512, 0, 512, 768) 

show facade1 droite at Position(xpos=.5, xanchor=0, yalign=0)

Ceci réduit la taille de l'image et la positionne un peu vers la droite, en bas:

image chambre base = "chambre.jpg"  
image chambre scale = im.Scale("chambre.jpg", 533, 400)

show chambre scale at Position(xpos=600, xanchor=.5, ypos=1.0, yanchor=1.0)

J'ai aussi utilisé une ou deux variables pour éviter de répéter certaines chaines de caractères et bien sûr les menus pour le choix des jeux.

Pour l'utilisation de texte inséré par l'utilisateur, avec un contrôle simple (if ... else), j'ai un peu tatonné:

    #définit et initie la variable pour donner la couleur
init:
    $ nomcouleur = "" 
    $ couleur = DynamicCharacter("nomcouleur", color=(192, 64, 64, 255))

label chambre_couleur:
    # On demande à l'utilisateur de rentrer du texte    
    $nomcouleur = renpy.input("Quelle est la couleur du mur ? \nEcris la réponse.") or "Blanc"

    couleur "Tu as écrit : \nLe mur est [nomcouleur]."
    #on vérifie la réponse 
    if nomcouleur == "rouge" or nomcouleur == "ROUGE":
        "Bravo !"
        jump chambre_lampe
    else: 
        "[faux]"
        jump chambre_couleur 

Le tutoriel  m'a aidé pour certaines choses mais j'ai du aller sur la FAQ de Renpy pour mieux comprendre.

En particulier, cet exemple ne fonctionnait pas sans que je sache pourquoi:

    #pov "My name is %(povname)s."
    pov "Mon nom est %(povname)s."

J'ai mis à la place la variable nomcouleur entre crochets.

Le fait de ne pas avoir le code directement dans le tutoriel pour l'interaction utilisateur m'a un peu perturbé. hmm
Pas toujours facile de trouver ce qu'on cherche au sein des fichiers de demo contenus dans le repertoire game du tutoriel.

Mais j'avance doucement mais surement et espère arriver à faire vraiment ce que je veux prochainement.

Dernière modification par doudoulolita (Le 19/11/2011, à 21:21)

Hors ligne

#206 Le 20/11/2011, à 17:00

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Retour sur pygame pour un essai très simple mais que je n'ai pas réussi à mettre en oeuvre. sad

Je veux récupérer une donnée dans un fichier xml nommé coords.xml.

J'ai fait au plus simple pour mon test: cool

<?xml version="1.0" encoding="UTF-8"?>

<image>"arriereplan.jpg"</image>

Le but est de l'utiliser dans cette ligne de code de mon fichier pour ensuite pouvoir l'afficher:

# charge les images
arriereplan = pygame.image.load(image).convert()

J'ai vu que dans USF, cette opération se faisait avec

from xml.etree import ElementTree

Mon idée était la suivante (en me basant sur docs.python.org - The ElementTree XML API):

source = "coords.xml"
image = xml.etree.ElementTree.parse(source, parser=None)
print image

Je reçois ceci dans la console: sad

NameError: name 'xml' is not defined

J'ai essayé de remplacer xml par différents noms, ça refuse les strings et les integers

Je suppose que je dois faire une classe pour pouvoir l'utiliser mais tous les exemples que j'ai trouvés étaient beaucoup plus complexe que le mien et je ne comprenais pas le principe.

J'ai trouvé une fonction simple dans usf > level.py mais elle fait appel à d'autres fichiers d'USF, pour CONFIG: mad

CONFIG = Config() # en haut du fichier

def get_xml(levelname):
    '''
    return xml tree of the level
    '''
    return ElementTree.ElementTree(
            None,
            os.path.join(
                CONFIG.sys_data_dir,
                'levels',
                levelname,
                'level.xml'))

Si j'essaie ceci:

source = "coords.xml"
image = ElementTree.ElementTree(None, source)
print image

j'obtiens cela: hmm

<xml.etree.ElementTree.ElementTree instance at 0x8962e8c>
Traceback (most recent call last):
  File "essai_avec_xml.py", line 24, in <module>
    arriereplan = pygame.image.load(image).convert()
pygame.error: Can't seek in this data source

Il y a du mieux car la fenêtre s'ouvre mais cela affiche un écran noir, bien sûr. hmm

Si je dois réaliser une classe, j'aimerais qu'elle soit très, très simple pour que je pige bien son utilisation.

Dernière modification par doudoulolita (Le 20/11/2011, à 17:40)

Hors ligne

#207 Le 20/11/2011, à 17:25

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

Hum, alors oui, le parsing de xml c'est un peu plus complexe que ce que t'as vu jusque là. Y'a plusieurs méthodes et plusieurs bibliotèques, dans USF j'utilise ElementTree, qui te renvois un objet dans lequel tu peux faire des recherches par tags, et lire les propriétés associées, il y a xpath, lxml et d'autres méthodes avec toutes leurs façons différentes de traiter le xml (et donc avantages et inconvénients).

En gros, avec ElementTree, j'utilise get_xml juste pour m'aider, l'important, c'est que je récupère un objet que j'appelle "xml", c'est dans cet objet que je fais mes recherches d'éléments, et que je construit mon niveau.
pour simplifier un peu

        # récupération de l'objet de type xml
        xml = return ElementTree.ElementTree(None, nom_du_fichier)

        # le xml est est arbre, il a donc une racine, qui est un élément unique, avec des enfants, on récupère les attributs de la racine
        attribs = xml.getroot().attrib
        # le nom du niveau est l'un de ces attributs, qui sont stoqués dans un dictionnaire
        self.name = attribs['name']
<?xml version="1.0" encoding="UTF-8"?>
<map
        name="Big level"
        background="biglevel-background.png"
        foreground="biglevel-foreground.png"
        middle="biglevel-middle.png"
        margins="750,750,750,750"
        >

ici map est le noeud racine, tous ses attributs sont entre "<map" et le premier signe ">", les enfants sont tout ce qui est entre ce ">" et le "</map>" correspondant.
name est donc ici "Big Level"

Un exemple simple pour comprendre comment je traite les enfants (:P) se trouve dans "load_entrypoints", à qui l'on passe le xml, c'est découpé dans un soucis de clareté, mais tous les "load_" pourrait bien etre remplacé par leur code, les uns à la suite des autres, c'était le cas au début, d'ailleurs.

       # initialisation des entrypoints en une liste vide
       self.entrypoints = []
       # on demande à notre objet xml tous les enfants de type 'entry-point' et on boucle dessus.
        for point in xml.findall('entry-point'):
            # les enfants sont des noeuds, comme la racine, donc on demande leurs attributs de la meme façon.
            coords = point.attrib['coords'].split(' ')
            # on utilise les coordonées pour construire un point
            self.entrypoints.append([int(coords[0]), int(coords[1])])

en gros, entre attrib, et find_all, tu fais un peu tous les traitements de base.

Dernière modification par tshirtman (Le 20/11/2011, à 17:26)

Hors ligne

#208 Le 20/11/2011, à 17:57

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

De mon côté, j'ai regardé en détail les fichiers level.py et retravaillé mon fichier et ça marche !
coords.xml est maintenant dans un dossier nommé essai et est composé ainsi:

<?xml version="1.0" encoding="UTF-8"?>

<map
    name="essai"
    background="arriereplan.jpg">
</map>

Dans mon fichier principal (en .py), voici ce que j'ai fait:

# nom du niveau
niveau = "essai"

# recherche du fichier xml
def get_xml(niveau):
    '''
    return xml tree of the level
    '''
    return ElementTree.ElementTree(
            None,
            os.path.join(
                niveau,
                'coords.xml'))
# définition de l'objet xml
xml = get_xml(niveau)
# récupération des attributs du fichier xml
attribs = xml.getroot().attrib
# création d'un dictionnaire
background = attribs['background']
print background
#Plus loin:
arriereplan = pygame.image.load(background).convert()

# dans la boucle:
    screen.blit(arriereplan, (0, 0))

Si je faisais une classe, ce serait en fait pour avoir plusieurs niveaux différents et ne pas avoir à redéfinir la variable à chaque fois, c'est bien ça ?
Je peux aussi utiliser l'interaction avec l'utilisateut pour qu'il me dise dans quel dossier je dois trouver coords.xml, sachant que le nom du dossier correspond à name dans le fichier xml.

Dernière modification par doudoulolita (Le 20/11/2011, à 18:03)

Hors ligne

#209 Le 20/11/2011, à 18:03

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

Une classe c'est plus un moyen de regrouper plusieurs données ensemble, et les méthodes permettant de les manipuler avec. L'exemple qu'on donne en général est celui d'une voiture, tu pourrais tout à fais considérer la vitesse de la voiture, sa direction, et ses coordonnées, comme des variables séparées, et des fonctions démarrer_voiture, tourner_voiture, etc pour la gérer, avec une classe, on regroupe tout ça dans un "lot" cohérent indépendant du reste, une voiture, avec une vitesse, une direction, des coordonées, et une méthode de démarrage, une méthode pour tourner, dans les programmes complexes, ça permet de segmenter la logique, et donc de plus facilement appréhender la complexité.

Hors ligne

#210 Le 26/11/2011, à 15:32

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Suite à une séance avec les maternelles où nous avons visité le site de l'expo Paul Klee à la Cité de la Musique (Paris), j'ai pensé que faire des niveaux pour USF inspirés de grands peintres serait sympa. cool

Beaucoup sont dans le domaine public, donc ça ne devrait pas être trop compliqué d'avoir des images de bases. Sinon, on peut juste faire "à la manière de" ou reprendre la palette de couleurs, par exemple.

Le logiciel Gcompris utilise des tableaux de Degas, Michel-Ange ou Renoir pour ses puzzles par exemple.

Dans le genre peintre, on pourrait avoir des combats au pinceau où les persos changent progressivement de couleurs quand ils sont touchés, mais je crois que Disney a fait un jeu avec les couleurs (+ de vieux cartoons en N/B), déjà, non ?

Dernière modification par doudoulolita (Le 26/11/2011, à 16:21)

Hors ligne

#211 Le 29/11/2011, à 12:41

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Pour Jnavigue, il y a plein d'images de clavier. Les originaux sont en QWERTY et j'ai réalisé une version AZERTY.
A l'heure actuelle, nous avons nommé suivant cet exemple: clavier_qwerty_e.png et clavier_azerty_e.png pour la lettre E
Est-ce pratique ou faudrait-il plutôt mettre chacun dans un dossier qwerty et un dossier azerty en nommant les images de manière identique à l'intérieur des dossiers ? On aurait juste ainsi le même nom: clavier_e.png et on indiquerait le dossier dans le code suivant la version de l'utilisateur.
Si on garde notre façon actuelle de nommer les images, est-ce qu'il y a une ruse pour simplifier le code (en ayant une partie du nom de l'image comme variable) au lieu de tout changer d'une version à l'autre ? Comment le faire ?

rappel : Renpy définit les images avec

image sylvie smile = "sylvie_smile.png"
image sylvie surprised = "sylvie_surprised.png" 

et les affiche avec

show sylvie smile
show sylvie surprised

on peut introduire des variables et du code python sans souci. Exemple:

label start:
    $ bl_game = False

label hentai:
    $ bl_game = True
    m "Why it's a game..."

    if bl_game:
        "Well, apart from that boy's love game she insisted on making."

Voir Quickstart pour plus de détail

Dernière modification par doudoulolita (Le 29/11/2011, à 12:46)

Hors ligne

#212 Le 01/12/2011, à 13:40

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

J'avais envie de faire une image de maison (ou au moins de chambre en 3D pour Jnavigue mais il me faudra baucoup d'éléments. J'ai trouvé un tabouret et des éléments à mettre sur une table sur blenderstuff.org.

OpenClipart m'a aussi été conseillé par la créatrice de Jnavigue mais j'ai trouvé des fichiers svg et non des .blend.

J'aimerais trouver encore d'autres modèles en rapport avec la vie quotidienne.

Hors ligne

#213 Le 02/12/2011, à 16:37

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Je travaille de nouveau sur mon jeu des intrus pour Gcompris: intruders-activity
Je me suis basée sur une activité existante: babyshapes, elle-même basée sur le plugin shapegame.
La démarche (pas réussie jusqu'au bout à l'heure actuelle) est la suivante:
il faut d'abord récupérer la version de développement:

git clone git://git.gnome.org/gcompris
cd gcompris
sh autogen.sh && make

Ensuite, j'ai copié le dossier src>babyshapes-activity comme modèle.
Après, j'ai suivi la doc Adding an activity
J'ai réussi à ajouter mon dossier (retravaillé avec mes images et mes fichiers xml)
mais il ne faut pas oublier de recompiler avec

sh autogen.sh

avant de faire

make
./runit.sh intruders-activity

La doc oublie de dire qu'il faut avoir gnome-common installé et ne précise pas quand on est dans le dossier gcompris ou dans le dossier src.
Je n'ai pas encore réussi à lancer l'activité, le jeu commence à se lancer (il y a du mieux car au début rien ne venait) mais ne trouve pas le plugin, semble-t-il.

La liste de diffusion de Gcompris est fort bien animée par Bruno Caudoin mais la doc des développeurs n'est pas super claire ni ultra-précise.

Pour l'instant, je n'ai pas trouvé de topic de forum sur Ubuntu (ou ailleurs) pour plus d'aide sur Gcompris et l'ajout d'une activité. Les topics sont surtout sur les problèmes d'installation, dirait-on.

Dernière modification par doudoulolita (Le 08/12/2011, à 13:44)

Hors ligne

#214 Le 03/12/2011, à 13:17

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Les maternelles s'intéressent de près à USF et je souhaite en profiter pour faire une discussion sur les jeux de baston (réels et virtuels) qui leur plaisent tant.
Un biais serait de faire créer un décor pour le jeu. J'ai fait un essai avec Tuxpaint, nommé tuxy.
Il n'y a pas de fond transparent dans Tuxpaint, il faut passer par le filtre couleurs > couleur vers alpha de Gimp pour rendre le blanc transparent, c'est un peu ennuyeux pour tout faire en une seule séance.

J'ai préparé quelques plateformes et fichiers xml à l'avance. Les plateformes peuvent être dessinées sous forme de carré vide à remplir avec des tampons personnalisés, les formes, des coups de pinceau...

L'important serait qu'il n'y ait pas de blanc dans les éléments pour pouvoir utiliser le filtre de Gimp.

tuxy screenshot

On peut en tout cas faire faire le fond et l'insérer sous des plateformes déjà préparées, avec le code xml nécessaire. Il faut aussi faire le screenshot (que j'ai failli oublier !) en glissant les calques un par un dans Gimp, et renommer les fichiers.

Dernière modification par doudoulolita (Le 03/12/2011, à 14:48)

Hors ligne

#215 Le 03/12/2011, à 16:40

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Voici un autre essai avec la baguette magique et les tampons de Tuxpaint: tuxy2

tuxy2 screenshot avec tampons Tuxpaint

Ici encore, les enfants créeraient juste le fond.

On voit que si les enfants font les plateformes (middle.png) avec les tampons de Tuxpaint, il n'est pas très simple de rendre le fond transparent car certains tampons comportent du blanc ou n'ont pas des formes rectangulaires. Heureusement, les maternelles ne seront pas très exigeants sur la qualité des hardshapes... cool

J'ai mis dans le dossier "source" le template qui permettrait aux instituteurs (ou à des enfants plus grands avec Gimp ou Inkscape) de créer d'autres plateformes pour ce niveau.
Conseil : Pour ne pas avoir de problèmes de transparence, utiliser directement les tampons trouvés dans /usr/share/tuxpaint/stamps (sous Ubuntu) et les copier-coller dans un autre dossier pour les utiliser dans Gimp. Un redimensionnement précis est alors possible avec l'outil de mise à l'échelle de Gimp

L'idéal serait de créer des tampons rectangulaires aux textures variées pouvant servir de plateformes, et d'ouvrir le template dans Tuxpaint pour bien placer les tampons.

Des templates avec le contour des formes à tamponner très précisément pourraient être utiles (avec le point central permettant de savoir où cliquer).

Dernière modification par doudoulolita (Le 03/12/2011, à 16:48)

Hors ligne

#216 Le 04/12/2011, à 01:44

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

J'améliore tout doucement le mini-jeu maison.zip pour Renpy

On peut maintenant repeindre sa chambre et changer la déco de la cuisine, à condition de bien écrire les mots...
L'objectif sera de savoir écrire le nom des couleurs d'une part et de savoir recopier le nom des formes (destiné aux enfants ou adultes qui apprennent le français et l'informatique).

lavievit m'a signalé un souci sur la version précédente du jeu, il ne se lançait pas. Je crois que c'est la version de Renpy (6.13.2 pour moi) qui n'était pas la même et qui posait problème.

Cependant, tout test par une autre personne sera le bienvenu. cool
il faut télécharger Renpy, décompresser maison.zip et mettre le dossier maison dans celui de Renpy.

Petit souci : Quand j'écris les réponses dans mon jeu, c'est très lent à s'afficher. Je ne sais pas d'où ça provient.

Sinon, j'ai essayé l'utilisation de variables pour afficher les différentes couleurs de murs de la chambre mais ça ne fonctionne pas comme je le veux. Voici l'état actuel de cette partie du jeu (résumée)

# definition des images
image chambre rouge = "chambre/chambre_rouge.jpg"
image chambre bleue = "chambre/chambre_bleue.jpg"
image chambre jaune = "chambre/chambre_jaune.jpg"

# l'utilisateur doit écrire le nom de la couleur
$nomcouleur = renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc"

# suivant la réponse, on affiche l'une des images
if nomcouleur == "rouge" or nomcouleur == "ROUGE":        
    show chambre rouge
elif nomcouleur == "jaune" or nomcouleur == "JAUNE": 
    show chambre jaune
elif nomcouleur == "bleu" or nomcouleur == "BLEU": 
    show chambre bleue
else:    
    "Tu n'as pas cette couleur, recommence !"

Ce que j'aimerais, c'est pouvoir écrire

show chambre nomcouleur

Mais ça n'a pas l'air de fonctionner. Ou peut-être puis-je créer une fonction + un tableau ou un dictionnaire ?
Le but est de pouvoir ajouter d'autres couleurs par la suite, bien sûr. Pour l'instant, le choix est un peu réduit! hmm

Dernière modification par doudoulolita (Le 04/12/2011, à 02:37)

Hors ligne

#217 Le 04/12/2011, à 12:14

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

couleurs = {'rouge': rouge, 'jaune': jaune, 'bleu': bleu}

$nomcouleur = (renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc").lower()

if nomcouleur in couleurs:
    show chambre couleurs[nomcouleur]
else:    
    "Tu n'as pas cette couleur, recommence !"

Hors ligne

#218 Le 05/12/2011, à 14:22

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Je teste au boulot le jeu que j'ai fait chez moi.
2 soucis dans mon jeu, visibles en faisant un check script (lint):

game/cuisine.rpy:53 Could not evaluate 'deco', in the who part of a say statement.

game/script.rpy:37 Image peinture texte uses file 'peinture/texte_couleurs.png', which is not loadable.

J'ai donc ajouté dans script.rpy:

    $ deco = DynamicCharacter("nomdeco", color=(192, 64, 64, 255))

et changé dans cuisine.rpy:

    scene bg cuisine
    show deco choix at Position(xalign=0, yalign=0)
    $nomdeco = renpy.input("Quelle décoration veux-tu ? \nRecopie la réponse en capitales.") or "Blanc"
          
    #on vérifie la réponse     
    if nomdeco == "LES CARRÉS":        
        show deco carres at Position(xalign=0, yalign=0)
        deco "Tu as choisi [nomdeco]."
        jump vrai
    elif nomdeco == "LES CARRES":        
        deco "Tu as choisi [nomdeco] mais tu as oublié l'accent sur le E.\nRecommence !"
        jump cuisine_deco 
    elif nomdeco == "LES CARRE" or nomdeco == "LES CARRÉ":        
        deco "Tu as choisi [nomdeco] mais tu as oublié de les mettre au pluriel.\nRecommence !"
        jump cuisine_deco
    elif nomdeco == "les carrés":        
        deco "Tu as choisi [nomdeco] mais tu as oublié de les mettre en capitales.\nRecommence !"
        jump cuisine_deco 
        
    elif nomdeco == "LES LOSANGES":        
        show deco losanges at Position(xalign=0, yalign=0)
        deco "Tu as choisi [nomdeco]."
        jump  vrai     
    elif nomdeco == "LES LOSANGE":        
        deco "Tu as choisi [nomdeco] mais tu as oublié de les mettre au pluriel.\nRecommence !"
        jump cuisine_deco
    elif nomdeco == "les losanges":        
        deco "Tu as choisi [nomdeco] mais tu as oublié de les mettre en capitales.\nRecommence !"
        jump cuisine_deco        
    else:
        "[faux]"
        jump cuisine_deco

Pour l'image texte_couleurs.png, je l'ai quelque part mais ai oublié de la mettre dans le bon dossier ! sad
Il suffit d'enlever dans script.py:

    image peinture texte = "peinture/texte_couleurs.png"

Ca ne sert pas à grand chose en fait.

Dernière modification par doudoulolita (Le 05/12/2011, à 14:30)

Hors ligne

#219 Le 05/12/2011, à 14:45

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Une fois tout ça corrigé, j'ai utilisé build distributions (dans le menu de renpy) sur mon jeu et voici le résultat actuel: maison-all.zip

Ce n'est pas encore un chef d'oeuvre mais je crois qu'il y a des idées à développer. smile

Hors ligne

#220 Le 05/12/2011, à 15:56

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

tshirtman a écrit :
couleurs = {'rouge': rouge, 'jaune': jaune, 'bleu': bleu}

$nomcouleur = (renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc").lower()

if nomcouleur in couleurs:
    show chambre couleurs[nomcouleur]
else:    
    "Tu n'as pas cette couleur, recommence !"

j'ai testé mais ça ne fonctionne pas.
Je crois qu'il faut plutôt utiliser les fonctions renpy.image et renpy.show mais je dois faire des essais.

Dernière modification par doudoulolita (Le 05/12/2011, à 16:44)

Hors ligne

#221 Le 06/12/2011, à 14:52

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Pour le jeu maison, j'ai réussi à utiliser la fonction renpy.image()

    python:
        for piece in ['chambre']:
            for couleur in ['blanche', 'rouge', 'bleue', 'jaune']:
                renpy.image((piece, couleur), "chambre/%s_%s.jpg" % (piece, couleur))

Je crois que je vais plus galérer pour renpy.show car l'exemple n'est pas aussi évident à adapter à mon jeu.

Hors ligne

#222 Le 08/12/2011, à 13:20

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Finalement, ce n'est pas très compliqué pour repeindre le mur avec python wink

    $nomcouleur = renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc"
    python:
        couleurchambre = {'rouge': 'chambre rouge', 'jaune': 'chambre jaune', 'bleu': 'chambre bleue', 'bleue': 'chambre bleue'} 
    if nomcouleur in couleurchambre:       
        python:
            renpy.show(couleurchambre[nomcouleur])

J'ai fait de même pour la couleur des pots de peinture en simplifiant le nom de images.
Dans script.rpy:

    python:
        for pot in ['pot']:
            for potcouleur in ['rouge', 'bleu', 'jaune']:
                renpy.image((pot, potcouleur), "peinture/%s_%s.png" % (pot, potcouleur))

dans chambre.rpy (dans label chambre_couleurs):

    python:
       couleurpot =  {'rouge': 'pot rouge', 'jaune': 'pot jaune', 'bleu': 'pot bleu', 'bleue':'pot bleu'}
       # plus loin
   python:
        renpy.show(couleurpot[nomcouleur])

On ne peut pas indiquer la position de l'image  avec at Position mais l'image se replace à la même position que pot couleurs, donc pas de souci.

Télécharger maison-all.zip

Dernière modification par doudoulolita (Le 08/12/2011, à 13:22)

Hors ligne

#223 Le 08/12/2011, à 13:35

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

doudoulolita a écrit :

Finalement, ce n'est pas très compliqué pour repeindre le mur avec python wink

    $nomcouleur = renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc"
    python:
        couleurchambre = {'rouge': 'chambre rouge', 'jaune': 'chambre jaune', 'bleu': 'chambre bleue', 'bleue': 'chambre bleue'} 
    if nomcouleur in couleurchambre:       
        python:
            renpy.show(couleurchambre[nomcouleur])

hum, du coup tu peux faire plus simple

    $nomcouleur = renpy.input("De quelle couleur peins-tu le mur ? \nEcris la réponse.") or "Blanc"
    python:
        couleurchambre = ['rouge', 'jaune', 'bleu', 'bleue'] 
    if nomcouleur in couleurchambre:       
        python:
            renpy.show('chambre ' + nomcouleur)

et pareil pour le reste... smile

Hors ligne

#224 Le 09/01/2012, à 18:45

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

petit pingouin   Nouveau test sur Renpy avec un jeu où je souhaite déplacer un petit tux de droite à gauche ou de gauche à droite sur les chemins d'une île (le chateau vient de wikimedia commons).

ile_maison petite
Mon script ne marche pas, il ne veut pas tenir compte du clavier. Les fonctions de déplacement, elles, fonctionnent smile si on les teste une à une.

Internet m'a donné plusieurs exemples:
- key
- ui.key
- ui.keymap

Mais je n'en ai réussi aucun.  De plus ui.keymap (utilisé dans
bulle_fabulle sur le jeu Jnavigue) ne donne pas la bonne coloration syntaxique dans jEdit, l'éditeur de script de Renpy.

Dernière modification par doudoulolita (Le 20/01/2012, à 00:55)

Hors ligne

#225 Le 20/01/2012, à 00:58

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

En attendant la solution à mon problème précédent :
ville.zip est le début d'un jeu avec Renpy qui aidera les gens qui souhaitent apprendre le français, sur le thème de la ville.
Chaque lieu correspond à une des maisons de la carte ci-dessus.

Chaque dossier contient une image avec 4 propositions (de mots ou groupes de mots), une autre image où les textes sont mis en valeur et une grande image contenant la réponse. J'ai aussi mis les images du jeu sur picasaweb.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Chaque dossier aborde plus ou moins un problème de grammaire ou d'orthographe différent, comme le pluriel, le choix d'un pronom féminin ou masculin, etc...

banque: pronom "le" ou "la", distinguer "en" et "an" - distributeur : faire correspondre une somme en toute lettres à des billets ou à des pièces de monnaie (en projet)

boulangerie: ordre des lettres, distinguer "an" et "en", "j" et "g", pronom personnel "ma" ou "mon"

école: pronom avec apostrophe + accent sur le "E" - éponge: pronom avec apostrophe, distinguer "on" et "an"

mairie: distinguer 'ai", "é", "è", "ée"

poste: espace entre pronom et nom, distinguer "s", "t", "r"

supermarché: pluriel avec pronom

idées supplémentaires:

2 à 4 niveaux : moins de monuments et de routes sur les niveaux bas. Mots différents pour chaque lieu ou objet. A cliquer, à recopier ou à écrire (réponse à la question: qu'est ce que c'est ?)

chateau : pancartes avec dessin du chateau pour distinguer "o", "au", "eau", "on", "ou"

mairie: fiche nom- prénom et finir la phrase: il (elle) s'appelle...

Dernière modification par doudoulolita (Le 23/01/2012, à 23:27)

Hors ligne

Haut de page ↑