diff --git a/BULLES.md b/BULLES.md index 92b5928..cff4baa 100644 --- a/BULLES.md +++ b/BULLES.md @@ -14,11 +14,11 @@ http://wirechem.dahut.fr Les coordonnées sont celles du 1024x768 avec interpolation selon la resolution choisie. Les commandes sont insensibles à la casse. -*Fonctions d'attente* +**Fonctions d'attente** ####WAIT -Attend un click ou un appuie sur une touche. +Attend un clic ou un appui sur une touche. ####WAIT sec @@ -30,33 +30,38 @@ Attend le click sur le menu. ####WAIT DRAG,[bouton] -Attend un deplacement de curseur. +Attend un déplacement de curseur avec le bouton appuyé, il est possible +de préciser lequel. ####WAIT CLICK,[bouton] -Attend un click du bouton. +Attend un clic du bouton précisé ou n'importe quel bouton si non précisé -*Fonctions d'affichage* +**Fonctions d'affichage** ####MSG message -envoie un message à l'écran avec mise en forme. +envoie un message à l'écran avec mise en forme. Les virgules doivent être +remplacées par des points virgules. ####RECT x1,y1,x2,y2 dessine un carré rouge pour attirer l'attention de l'utilisateur sur une -zone à l'écran dont les coordonnées sont spécifiées. +zone à l'écran dont les coordonnées sont spécifiées. Il ne peut y avoir +qu'un rectangle ou fléche à l'écran : choisissez ! ####ARROW x1,y1,x2,y2 -dessine une flèche rouge pour attirer l'attention de l'utilisateur sur une -zone à l'écran dont les coordonnées sont spécifiées. +dessine une flèche rouge pour attirer l'attention de l'utilisateur sur +une zone à l'écran dont les coordonnées sont spécifiées. Il ne peut y +avoir qu'un rectangle ou fléche à l'écran : choisissez ! ####DEL -efface tout ce qui a été dessiné à l'écran. +efface tout ce qui a été dessiné à l'écran. Flèche, rectangle et message +texte. -*Fonctions menu* +**Fonctions menu** ####MENU menu,element,button @@ -68,13 +73,13 @@ Choisi un élément de menu. ####SET menu,element ou UNSET -Met en surbrillance un élément du menu. +Met en clignotance un élément du menu. ####UNSET menu,element -Retire la surbrillance d'un élément du menu. +Retire la clignotance d'un élément du menu. -*fonctions gameplay* +**fonctions gameplay** ####NEXT @@ -84,7 +89,7 @@ Fait la prochaine génération de la grille de simulation. Change le niveau technologique. -*fonction souris* +**fonction souris** ####CLICK x,y,button diff --git a/WireChem.py b/WireChem.py index a9f7cae..0aaa795 100644 --- a/WireChem.py +++ b/WireChem.py @@ -23,6 +23,7 @@ import time import operator import shelve import os +import sys from pyglet.gl import * from pyglet.window import mouse from pyglet.window import key @@ -126,7 +127,8 @@ def initgrid(): allcout=[0,0,0] sizex=sizey=1 seestat=thecout=world=over=play=cycle=rayon=temp=cout=decx=decy=nrj=0 - debug=rect=0 + rect=0 + debug=False msg=tuto='' tech=selected=level=-1 statedvar=[stat[0],stat[1],stat[2],stat[3],stat[4],stat[5],stat[6],stat[7],stat[8],nrj,temp,rayon,current[7],current[8],current[9],current[10],current[11],current[12]] @@ -139,6 +141,8 @@ def initgrid(): for l in range(len(worlds[w])): if "level"+str(w)+"-"+str(l) in finished and w>world: world=w + + if len(sys.argv)>1 and sys.argv[1]=='debug': debug=True ''' *********************************************************************************************** ''' @@ -158,7 +162,7 @@ def resize(): decy=-zoom+(win.height-zoom*(sizey-2))/2 def readlevel(w,l,user): - global tuto,worlds,cout,selected,sizex,sizey,stat,debug,tech + global tuto,worlds,cout,selected,sizex,sizey,stat,tech tuto='' if user: if w=len(tuto[0]): return + dt=0.001 + if tuto=='' or tuto[1]>=len(tuto[0]): return cmd,arg=tuto[0][tuto[1]] - print cmd,arg + if debug: print cmd,arg if cmd=='rect': rect=[int(arg[0]),int(arg[1]),int(arg[2]),int(arg[3]),0] elif cmd=='wait': - if int(arg[0])>0 and len(arg)==1 and arg[0]!='': dt=int(arg[0]) + if len(arg)==1 and arg[0]!='' and int(arg[0])>0: + dt=int(arg[0]) + else: + dt=0 elif cmd=='next': nextgrid() elif cmd=='del': @@ -1699,7 +1708,7 @@ def execute(dt): elif cmd=='tech': tech= int(arg[0]) elif cmd=='msg': - msg= str(arg[0]) + msg= str(arg[0].replace(';',',')) elif cmd=='select': if menus[int(arg[0])][0].has_key('mouse'): menus[int(arg[0])][0]['mouse'][int(arg[2])]=int(arg[1]) @@ -1729,7 +1738,7 @@ def on_key_press(symbol, modifiers): cmd,arg=tuto[0][tuto[1]] if cmd=='wait' and len(arg)==1 and arg[0]=='': tuto[1]+=1 - clock.schedule_once(execute,dt) + clock.schedule_once(execute,0.1) if player.source and player.source.video_format: player.next() ambiance.play() @@ -1820,7 +1829,7 @@ def on_mouse_press(x, y, button, modifiers): selected=-1 if type(tuto) is str and tuto!='': compiler() - execute(0.1) + execute(0) return if not testmenu(menus,x,y,0,0,[mouse.LEFT,mouse.MIDDLE,mouse.RIGHT].index(button)+1,modifiers): testgrid(menus,x,y,0,0,[mouse.LEFT,mouse.MIDDLE,mouse.RIGHT].index(button)+1, modifiers) diff --git a/dbdata b/dbdata index c15db88..cabe52f 100644 Binary files a/dbdata and b/dbdata differ diff --git a/dbsrc b/dbsrc index 38b7092..136295e 100644 --- a/dbsrc +++ b/dbsrc @@ -42,29 +42,32 @@ worlds=[[{'nom': 'Introduction', [0, 0, 196637, 0, 0], [0, 0, 0, 0, 0]], 'tuto':''' -mSG CECI EST LE TUTO ;) -arrow 700,100,420,50 -waIT 2 -next +msg Bienvenu dans le tutoriel de la première paillasse de WireChem; nous allons vous expliquer pas à pas le fonctionnement du jeu. wait -msg -rEct 90 ,90 ,200 , 200 -next -next -tech 8 -menu 0,1 -wait 2 -menu 0,1 -select 0,2,2 -set 0, 6 -wait 2 -MSg cool non ? -tech -1 -wait 4 -wait menu,1 -wait click,2 +msg L'interface du jeu est séparé en 3 grandes zones disctinctes; Chaque zone à ses particularités et elles évoluent au fur et à mesure que le jeu avance. +wait 7 +rect 0,768,1024,700 +set 1,5 +msg La barre du haut est une barre d'information; elle nous informe de l'état du jeu. Actuellement elle n'est remplie que de l'objectif du jeu que vous pouvez voir clignoter. +wait 7 +unset 1,5 +rect 0,700,1024,68 +msg La partie centrale est la zone de jeu a proprement parler; la ou vous allez creer votre modèle et ainsi vérifier par simulation que votre modèle rempli les objectifs de la paillasse. +wait 7 +rect 0,0,1024,68 +msg La barre du bas comporte plusieurs icônes que l'on peut selectionner afin de réaliser différentes actions. Les 3 rectangles de couleurs représentent les 3 actions déclencheable par l'appuie d'un des boutons de la souris. +wait 7 +arrow 635,145,320,26 +set 0,7 +msg Ainsi lors vous appuierez sur le bouton gauche n'importe ou sur l'écran vous aller déclencher l'action dézoomer. Essayer appuyer sur le bouton gauche pour tester l'action. +wait click,1 +unset 0,7 +arrow 635,145,230,26 +set 0,5 +msg Bravo !! L'action réalisée par le bouton droit est de couleur bleu et celle de la molette est en vert. L'action sélectionnée pour le bouton de la molette necessite un glisser déposer; il fait bouger le plateau de jeu, essayez ! +wait drag,2 +unset 0,5 del -unset 0, 6 ''', @@ -1065,7 +1068,7 @@ art={ menus=[ [ -{'motion':'motion_motion_popup','place':'bottom','visible':True,'size':50,'variable':False,'selectable':True,'mouse':[1,5,6]}, +{'motion':'motion_motion_popup','place':'bottom','visible':True,'size':50,'variable':False,'selectable':True,'mouse':[7,5,6]}, {'motion':'motion_popup','click': ['click_run','click_stop'], 'tech':-1, 'value':['Simuler','Fin simulation'], 'size':45, 'icon': ['picture/run.png','picture/stop.png'], 'choose': 0,'variable':False,'visible':True,'separe':False,'squarred':False,'active': True}, {'motion':'motion_popup','click': 'click_speed', 'tech':0, 'value':'Vitesse', 'size':45,'icon': 'picture/speed.png','variable':False,'visible':True,'separe':True,'squarred':False,'active': True}, {'motion':'motion_popup','click': 'click_load', 'tech':1, 'value':'Charger', 'size':45,'icon': 'picture/raz.png','variable':False,'visible':True,'separe':False,'squarred':False,'active': True},