Source     Discussion     Modifier     Historique     Forums     Salon IRC

Source:Gérer des fenetres.dbp

Un article de Games Creators Network.


Voilà de quoi gérer des fenetres, deplacement et passage au premier plan, n'hésitez pas à changer le nombre de fenetres et d'autres paramètres.

Rem Résolution de l'écran
set display mode 1024,768,32
 
Rem Taux de rafraichissement
sync on
sync rate 60
 
Rem Initialisation des données(changez la position initiale des fenetres(sprite numero de la fenetre,x,y,1) pour plus de 6 fenetres
nombrefenetres=6
 
dim fenetres(nombrefenetres)
dim fenetreselectionnes(nombrefenetres,1)
 
Rem Création d'une image (peut être remplacer par une image de dimension 256x128 pixels, ou de dimensions quelconque si l'on modifie les données du code)
create bitmap 1,256,128
 
ink rgb(96,96,96),0
 
box 16,0,239,127
 
for x=180 to 270
 xligne#=16+(cos(x)*16)
 yligne#=16+(sin(x)*16)
 line xligne#,yligne#,16,16
next x
for x=270 to 360
 xligne#=239+(cos(x)*16)
 yligne#=16+(sin(x)*16)
 line xligne#,yligne#,239,16
next x
 
ink rgb(128,128,128),0
 
box 16,111,239,127
box 0,16,255,111
for x=90 to 180
 xligne#=16+(cos(x)*16)
 yligne#=111+(sin(x)*16)
 line xligne#,yligne#,16,111
next x
for x=0 to 90
 xligne#=239+(cos(x)*16)
 yligne#=111+(sin(x)*16)
 line 239,111,xligne#,yligne#
next x
 
ink rgb(192,192,192),0
 
line 0,16,255,16
 
set text to italic
center text 128,2,"MENU"
 
get image 1,0,0,255,127,1
 
delete bitmap 1
 
set current bitmap 0
 
ink rgb(256,256,256),0
 
Rem Attribution de valeur
for fenetre=1 to nombrefenetres
 sprite 1+fenetre,(screen width()/2)-128,(screen height()-(nombrefenetres*128))/(nombrefenetres+1)*fenetre+(128*(fenetre-1)),1
 set sprite priority fenetre+1,fenetre
 fenetres(fenetre)=fenetre
 set sprite 1+fenetre,1,1
next fenetre
 
 
Rem Boucle principale
do
 
ancientx=nouveaux
ancienty=nouveauy
nouveaux=mousex()
nouveauy=mousey()
 
if mouseclick()=1 and clique=0
 clique=1
 for fenetre=1 to nombrefenetres
  if nouveaux>sprite x(fenetre+1) and nouveauy>sprite y(fenetre+1) and nouveaux<sprite x(fenetre+1)+256 and nouveauy<sprite y(fenetre+1)+128
   nombreselections=nombreselections+1
   fenetreselectionnes(nombreselections)=fenetre
   if nouveauy<sprite y(fenetre+1)+16
    if fenetreselectionnes(nombreselections,1)=0 then fenetreselectionnes(nombreselections,1)=1
   else
    if fenetreselectionnes(nombreselections,1)=1 then fenetreselectionnes(nombreselections,1)=0
   endif
  endif
 next fenetre
 if nombreselections>0
  for fenetretest=1 to nombreselections
   if fenetres(fenetreselectionnes(fenetretest))>fenetres(fenetrepremierplan)
    numero=fenetretest
    fenetrepremierplan=fenetreselectionnes(fenetretest)
   endif
  next fenetretest
  if fenetres(fenetrepremierplan)<nombrefenetres
   for fenetredecale=1 to fenetrepremierplan-1
    if fenetres(fenetredecale)>fenetres(fenetrepremierplan)
     fenetres(fenetredecale)=fenetres(fenetredecale)-1
    set sprite priority fenetredecale+1,fenetres(fenetredecale)
    endif
   next fenetredecale
   for fenetredecale=fenetrepremierplan+1 to nombrefenetres
    if fenetres(fenetredecale)>fenetres(fenetrepremierplan)
     fenetres(fenetredecale)=fenetres(fenetredecale)-1
     set sprite priority fenetredecale+1,fenetres(fenetredecale)
    endif
   next fenetredecale
   set sprite priority fenetrepremierplan+1,nombrefenetres
  endif
  if fenetreselectionnes(numero,1)=1 then fenetreselectionnee=fenetrepremierplan
  fenetres(fenetrepremierplan)=nombrefenetres
  if fenetrepremierplan>0 then fenetrepremierplan=0
 endif
 if nombreselections>0 then nombreselections=0
endif
 
if clique=1
 if mouseclick()=1
  if fenetreselectionnee>0 then sprite fenetreselectionnee+1,sprite x(fenetreselectionnee+1)+(nouveaux-ancientx),sprite y(fenetreselectionnee+1)+(nouveauy-ancienty),1
 else
  clique=0
  fenetreselectionnee=0
 endif
endif
 
sync
 
loop

 

Rechercher
Installer l'extension de recherche Plus d'informations

 

Comprendre
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin

 

Partager
La connaissance est la seule chose qui s'accroit lorsqu'on la partage. - Sacha Boudjema

 

Créer
L'imagination est plus importante que la connaissance. - Albert Einstein

 

 

Le wiki en images Le wiki en images Image du mois: «Snowball: un prototype de jeu développé avec NeL.