GeMa
Version 0.7
Nous vous recommandons de publier votre script avec la version GeMaMIN, qui est une version plus optimisée
Commencer à utiliser GeMa
from gema import *
Et voilà, vous avez accès à GeMa depuis votre script
Si vous voulez en savoir plus, allez voir notre documentation
Avec GeMa, vous pouvez :
- Créez
Ce script a été créé dans un but, faciliter la création de jeu, et en particulier les visualnovels.
- Manipulez vos sprites
GeMa Engine peut lire et interpréter les fichiers sprites (.pikt ou .pik)
- Partagez
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()