gemamin.py

Created by frablock

Created on September 20, 2021

4.42 KB

Partager

LogoGeMa GeMaMIN

Version 0.9

Commencer à utiliser GeMaMIN

from gemamin import * Et voilà, vous avez accès à GeMa depuis votre script

Si vous voulez en savoir plus, allez voir notre documentation

Avec GeMaMIN, 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), et vous permettre de pouvoir bouger des sprites à votre guise En savoir plus

  • Partagez

Partagez rapidement votre création sur notre site Partager votre script dès maintenant


_D,_C,_B,_A=(0,0,0),'Score : ','white','[OK]'
try:from os import *
except:print('err:Omega est requis http://discode.fr/gema/e?e=e_os')
try:from ppn import *
except:from kandinsky import *
from random import *;from ion import *;from time import *
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):
 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,d=(0,0,0),e=_B):draw_string(a,b,c,d,e)
def gm_err(a=""):pu("une erreur est survenue\n"+str(a));gm_r()
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 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)
def pik_get():
 lf,fl=listdir(),[]
 for j in lf:
  if ".pik" in j:fl.append(j)
 if fl==[]:pu("Fichier .PIK ou .PIKT\nintrouvable, mise en place du\nsprite par defaut")
 else:
  try:a=int(i(str(fl)+"\n(0,"+str(len(fl)-1)+")[autre=defaut]"));re(fl[a],"pik_open.py");from pik_open import *;re("pik_open.py",fl[a])
  except:gm_err("input err")
 sl(1)
a100=""
for pi0 in range(100):a100+=str(ra(0,1))
class pik:p=(["pikt","0000000000000000110000000012000000001130011111140011111114001111111000111111100000300300000333333000",[(255,255,255),(62,39,35),(0,0,0),(255,112,67),(255,0,0)],(10,10)],["pikt",a100,[(180,180,180),(50,50,50)]])
def gm_pik(a,b=(10,10),x=0,y=0):
 if a[0]=="pik":gm_i(a[1],a[2])
 else:pikt(a[1],a[2],b,(x,y))
def gm_tp(txt,ma=32,st=""):
 a,b,A,d=list(txt)+[''],'','\n'+st,[" ","'",",","."];l=len(a)
 if l>ma:
  mb=int(ma)
  for j in range(l//ma):
   nl=True
   for i in range(1,ma//4):
    if d.count(a[mb-i])>=1:a[mb-i]=A;mb+=mb-i;nl=False;break
   if nl:a.insert(mb,A);mb+=mb
  for i in range(l):b+=a[i]
 else:b=str(txt)
 return b,l//ma
def gm_w(txt,perso="",rw=0):a=gm_tp(txt);ds(str(perso),0,180-a[1]*20);ds(str(a[0]),0,200-a[1]*20)
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?'):
 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):
 pu('Felicitations, vous avez gagne\n'+str(win));p(_C+str(sco))
 if sco!=0:gm_sco(sco)
def gm_r():fr(0,0,320,225,_B)
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):
 for i in b:c+=i;ds(c,x,y);sl(0.05)
def gm_c(a,b,c,d,e,a5=0):
 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,c=_B,x=10,y=75,w=300,h=75):fr(x,y,w,h,(0,0,0));fr(x+1,y+1,w-2,h-2,c);ds(gm_tp(a,31," ")[0],x+2,y+2,_D,c);ds(_A,x+2,y+h-20,_D,c);gm_c(1,1,1,1,5,1);sl(0.5)
gm_s()#v0.9