Version 0.7
Nous vous recommandons de publier votre script avec la version GeMaMIN, qui est une version plus optimisée
from gema import *
Et voilà, vous avez accès à GeMa depuis votre script
Si vous voulez en savoir plus, allez voir notre documentation
Ce script a été créé dans un but, faciliter la création de jeu, et en particulier les visualnovels.
GeMa Engine peut lire et interpréter les fichiers sprites (.pikt ou .pik)
Partagez rapidement votre création sur notre site
#Docs -> https://discode.fr/gema/doc.html _C,_B,_A='Score : ','white','[OK]' #Importaion des bibliothèques try:from os import * except:print('Omega est requis') from random import *;from kandinsky import *;from ion import *;from time import * #Certaines commandes sont optimisées ci-dessous def p(a):print(a) def fr(a,b,c,d,e):fill_rect(a,b,c,d,e) def kd(a):return keydown(a) def rch(a):return choice(a) def ra(a,b):return randint(a,b) num=(42,1),(43,2),(44,3),(36,4),(37,5),(38,6),(30,7),(31,8),(32,9),(48,0);alpha='a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','?','!','.','_','-','' def keyboard(key=alpha,base='',v=1):#Clavier inclus dans GeMa B='num';A='alpha';fr(0,180,360,225,_B);sl(0.25);shi=0 if key==num:m=B else:m=A while True: for i in range(len(key)): if m==A: y=i if i+18>34:y=i-1 if i+18>40:y=i-2 if i+18>46:y=i-3 if kd(i+18): if shi==0:base+=str(key[y]) else:base+=str(key[y].upper()) if m==B and kd(key[i][0]):base+=str(key[i][1]);sl(0.25) if kd(12): if shi==0:shi=1 else:shi=0 sl(0.25) if kd(13): if m==A:keyboard(num,base) else:keyboard(alpha,base) if kd(17): try:lb=list(base);lb.pop();base='' except:tt('Texte vide','>') for s in range(len(lb)):base+=lb[s] sl(0.25) if kd(4)or kd(52):return base if v!=0:gm_w(base+' ','CLAVIER ('+m+', UPPER='+str(shi)+') ') def i(a='',b=0): try: if b==1:return keyboard() else:return input(a) except:return input(a) def re(a,b):rename(a,b) def ds(a,b,c):draw_string(a,b,c) def gm_err():gm_w('#>_< - err','',1) #Les trois commandes ci dessous permettent la gestion d'images def gm_i(im,pal,t=4,po=0,py=0): r,i=0,0 while r<len(im): s,n=im[r],'';r+=1 while r<len(im)and'9'>=im[r]>='0':n+=im[r];r+=1 nb=1 if n==''else int(n);c=pal[ord(s)-65] for j in range(nb):fr(po+t*(i%80),py+t*(i//80),t,t,(c[0],c[1],c[2]));i+=1 def pik(im,pal,p="pik",t=4,po=0,py=0,whp=(10,10,5,"0")): if p=="pikt":pikt(im,pal,whp,(po,py)) else:gm_i(im,pal,p=pik,t=4,po=0,py=0,whp=(10,10,5,"0")) def pikt(im,pal,whp=(10,10,5,"0"),xy=(100,100)): for i in range(whp[0]*whp[1]): c=pal[int("0x"+im[i])] if im[i]!=whp[3]:fr(xy[0]+whp[2]*(i%whp[0]),xy[1]+whp[2]*(i//whp[0]),whp[2],whp[2],c) #Les deux commandes ci dessous permettent l'affichage de textes def gm_w(txt,perso,rw=0): A='\n' if rw>0:gm_r() a,b=list(txt)+[''],'';l=len(a) if l>64:p('#>64') if l>32: for i in range(64-l): if a[32-i]==' ':a.insert(33-i,A);break if a.count(A)<=0:a.insert(32,A) for i in range(l):b+=a[i] else:b=str(txt) ds(str(perso),0,160);ds(str(b),0,180) def gm_t(txt,perso,img=0,pal=0,a=4,b=0,c=0): if img==0:gm_w(txt,perso) else:gm_i(img,pal,a,b,c);gm_w(txt,perso) def gm_a(a,b,c,d,e,a5='#err:str?'):#Affichage d'action que le joueur peut effectuer, nous vous recommandons d'ajouter gm_c() ds('[up]'+str(a),0,0) if e>=2:ds('[down]'+str(b),0,18) if e>=3:ds('[left]'+str(c),0,36) if e>=4:ds('[right]'+str(d),0,54) if e>=5:ds(_A+str(a5),0,72) def gm_wi(win,sco=0): p('***GeMa - Vous avez gagne');gm_r();ds('Felicitations, vous avez gagne\nVous etes vainqueur :\n'+str(win),0,80);p(_C+str(sco)) if sco!=0:gm_sco(sco) def gm_r():fr(0,0,320,225,_B)#reset l'affichage def sl(a):sleep(a) def gm_s():co=[(0,0,0),_B];fr(0,0,320,255,co[0]);fr(130,70,60,60,co[1]);fr(140,80,50,40,co[0]);fr(180,100,10,30,co[1]);fr(180,100,-20,10,co[1]);ds('eMa',192,112);ds('Engine',130,132);sl(2.8);fr(0,0,320,255,'grey');sl(0.1);gm_r();ds(_A,0,0) def gm_sco(sco):ds(_C+str(sco),200,0) def tr(a=''): for i in range(32):a=a+rch(['_','-','(',')','@','O','D','{','}','#','%','&','=','[]','|',';','!','?','H','>','<','*',"'",'.','/']) return a def tt(b,c,x=0,y=0):#Affichage du texte avec l'effet TextType for i in range(len(b)):c+=b[i];ds(c,x,y);sl(0.05) def gm_c(a,b,c,d,e,a5=0):#Gestion des clics while True: if kd(1)and e>=1:return a if kd(2)and e>=2:return b if kd(0)and e>=3:return c if kd(3)and e>=4:return d if kd(4)and e>=5:return a5 def pu(a,x=106,y=75,w=106,h=75):fr(x,y,w,h,(0,0,0));fr(x+1,y+1,w-2,h-2,_B);ds(a,x+2,y+2);ds(_A,x+2,y+h-20);gm_c(1,1,1,1,5,1) gm_s()