FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» trop de fichiers en cours
GUI for game Emptypar lepetitmarocain Aujourd'hui à 17:29

» Une calculatrice en une ligne de programme
GUI for game Emptypar jean_debord Aujourd'hui à 8:47

» Form(résolu)
GUI for game Emptypar leclode Hier à 17:59

» Bataille navale SM
GUI for game Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Gestion d'un système client-serveur.
GUI for game Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
GUI for game Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
GUI for game Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
GUI for game Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
GUI for game Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
GUI for game Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
GUI for game Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
GUI for game Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
GUI for game Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
GUI for game Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
GUI for game Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 GUI for game

Aller en bas 
4 participants
AuteurMessage
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

GUI for game Empty
MessageSujet: GUI for game   GUI for game EmptyVen 28 Mar 2014 - 20:53

J' essaye de créer une interface pour les jeux
avec une adaptation d' un code de nardo26 pour la toolbar.
Mais, voilà que je me retrouve avec un message bizarre qui me "invalide pointer" 
quand je clique sur un bouton alors qu' il vient de m' afficher le message qui va avec.

Code:
' ------------------------------------------------------------------------------
'                              SOURCE D UN JEU
' ------------------------------------------------------------------------------
GUI_Games(6,100,300,20,"Mon Jeu")

End

' ------------------------------------------------------------------------------
'                                GUI FOR GAMES
' ------------------------------------------------------------------------------

Sub GUI_Games(Bt%,min_h%,min_w%,Resol%,C$)
  Dim no%,GG_button%(Bt%),GG_panel%,GG_edit%,GG_timer%,GG_id%,GG_oid%,GG_Resol%
  Dim GG_Nbutton%,GG_File$,GG_Clic%,GG_y%,GG_x%
  Label GG_button_on,GG_Menu
  dim_local x%,dep%,h%,w%

  GG_Resol%  =Resol%
  GG_Nbutton%=Bt%
  GG_oid%    =0

'  dimensionnement du form 0
  Caption 0,C$
  h%=GG_Resol%+100
  if min_h%<h% :height 0,h% :else: height 0,min_h% : end_if
  w%=(GG_Resol%*Bt%)+100
  if min_w%<w% :width 0,w% : else: width 0,min_w%  : end_if
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2

'  affichage des boutons
  dep%=GG_Resol%*-1
  for x%=1 to Bt%
      no%=no%+1 : GG_button%(x%)=no%
      picture x%
      top x%,0
      left x%,dep%+(x%*GG_Resol%)
      height x%,GG_Resol%
      width x%,GG_Resol%
      file_load x%,dir_current$+"\icones\"+str$(x%)+".bmp"
      cursor_point x%
      on_click x%,GG_Menu
      inactive x%
  next x%
 
  no%=no%+1 : GG_edit%=no%
  Edit no%
  top no%,2
  left no%,width(0)-110
  width no%,80
  height no%,Resol%-4

'  Espace de Jeu
  no%=no%+1 : GG_panel%=no%
  panel no%
  hide no%
  top no%,Resol%
  left no%,0
  height no%,height(0)-40-Resol%
  width no%,width(0)-18

'  Timer des boutons
  no%=no%+1: GG_timer%=no%
  timer no% : timer_interval no%,100 : on_timer no%,GG_button_on
End_sub


GG_button_on:
  GG_y% = mouse_y_position(0)
  GG_x% = mouse_x_position(0)
  if GG_y% <GG_Resol%
      if GG_x% >0
        if GG_x%<(GG_Resol%*GG_Nbutton%)
            GG_id% =int(mouse_x_position(0)/GG_Resol%)+1
            caption 0,str$(GG_id% )
            if GG_oid%<>GG_id%
              if GG_oid%>0
                  inactive GG_button%(GG_oid%)
                  GG_file$=dir_current$+"\icones\"+str$(GG_oid%)+".bmp"
                  file_load GG_button%(GG_oid%),GG_file$
              end_if
              if GG_id%>0
                  contrast GG_button%(GG_id%),-30
                  active GG_button%(GG_id%)
              end_if
              GG_oid%=GG_id%
            end_if
        else
            GG_id%=0
        end_if
      else
        GG_id%=0
      end_if
  else
    GG_id%=0
  end_if
return

GG_Menu:
  GG_Clic%=number_click
  Select GG_Clic%
  Case 1: Message "1"
  case 2: Message "2"
  case 3: Message "3"
  case 4: Message "4"
  case 5: Message "5"
  case 6: Message "6"
  End_select
return

Je mets le dossier sur le webdav de ce pas.

Si quelqu' un voit quelque chose qui ne va pas...
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

GUI for game Empty
MessageSujet: re   GUI for game EmptyVen 28 Mar 2014 - 21:09

Bon le temps de pouvoir accéder à ce que je viens de poster... bounce ,
J' ai trouvé ce qui semble être le problème....le timer Rolling Eyes .

Je re-posterai dès que... enfin quand le serveur voudra  Wink
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

GUI for game Empty
MessageSujet: Re: GUI for game   GUI for game EmptyVen 28 Mar 2014 - 21:28

Je viens de chercher sur ton code et j'allais te poster la même réponse.

Je viens de passer le timer_interval à 1000 au lieu de 100 et tout semble OK !

Citation :
timer no% : timer_interval no%,1000 : on_timer no%,GG_button_on
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

GUI for game Empty
MessageSujet: re   GUI for game EmptyVen 28 Mar 2014 - 22:18

Le truc était d' arrêter le timer au clic 
et de reprendre après son traitement.

Voilà pour une interface de jeu avec des icones et en panoramic :

Code:
' ------------------------------------------------------------------------------
'                              SOURCE D UN JEU
' ------------------------------------------------------------------------------
GUI_Games(7,350,500,20,"Mon Jeu")

' - Il suffit de placer les éléments du graphiques visibles du jeu
' dans l' objet Panel ( parent obj%,GG_panel% )
' - Pour les  numéros d'objets de prendre la suite de no%
' toutes les variables globales utilisées sont précédées du préfixe "GG_"
' pour GUI_Games.
' - Les paramètres sont : nombre d'icones menu,height 0,width 0,
' resolution des icones, Nom du jeu
' - Le joueur sélectionné est dans Player$
' - Le score s' affiche dans GG_edit%

End

' ------------------------------------------------------------------------------
'                                GUI FOR GAMES
' ------------------------------------------------------------------------------

Sub GUI_Games(Bt%,min_h%,min_w%,Resol%,C$)
   Dim no%,GG_button%(Bt%),GG_panel%,GG_edit%,GG_timer%,GG_id%,GG_oid%,GG_Resol%
   Dim GG_Nbutton%,GG_File$,GG_Clic%,GG_y%,GG_x%,GG_Alpha%,frmPlayer%
   Dim player_list%,Addplayer_button%,Player$
   Label GG_button_on,GG_Menu,Select_player,Ajout_joueur,close0
   dim_local x%,dep%,h%,w%,GG_hint$,sep%

   GG_Resol%  =Resol%
   GG_Nbutton%=Bt%
   GG_oid%    =0
   GG_hint$   ="Ouvrir une partie,Nouvelle partie,Enregistrer la partie,Initialiser la partie,Joueurs,Tableau des scores,Règles du jeu,"

'  dimensionnement du form 0
   Caption 0,C$
   h%=GG_Resol%+100
   if min_h%<h% :height 0,h% :else: height 0,min_h% : end_if
   w%=(GG_Resol%*Bt%)+150
   if min_w%<w% :width 0,w% : else: width 0,min_w%  : end_if
   top 0,(screen_y-height(0))/2
   left 0,(screen_x-width(0))/2

'  affichage des boutons
   dep%=GG_Resol%*-1
   for x%=1 to Bt%
      no%=no%+1 : GG_button%(x%)=no%
      picture x%
      top x%,0
      left x%,dep%+(x%*GG_Resol%)
      height x%,GG_Resol%
      width x%,GG_Resol%
      file_load x%,dir_current$+"\icones\"+str$(x%)+".bmp"
      cursor_point x%
      sep%=instr(GG_hint$,",")
      if sep% >0 : hint x%,left$(GG_Hint$,sep%-1): end_if
      if len(GG_hint$)> sep% :GG_hint$=right$(GG_hint$,len(GG_hint$)-sep%) :end_if
      on_click x%,GG_Menu
      inactive x%
   next x%
  
'  Affichage du score
   no%=no%+1 : GG_Alpha%=no%
   Alpha no%
   top no%,3 : left no%,width(0)-145 :Caption no%,"Score :"
   font_name no%,"Times new roman" : font_size no%,10
  
   no%=no%+1 : GG_edit%=no%
   Edit no%
   top no%,2
   left no%,width(0)-105
   width no%,80
   height no%,Resol%-4

'  Espace de Jeu
   no%=no%+1 : GG_panel%=no%
   panel no%
   hide no%
   top no%,Resol%
   left no%,0
   height no%,height(0)-40-Resol%
   width no%,width(0)-18

'  Timer des boutons
   no%=no%+1: GG_timer%=no%
   timer no% : timer_interval no%,200 : on_timer no%,GG_button_on
  
'  fermeture par la croix
on_close 0,close0
End_sub

'  Fonction de survol des boutons
GG_button_on:
   GG_y% = mouse_y_position(0)
   GG_x% = mouse_x_position(0)
   if GG_y% <GG_Resol%
      if GG_x% >0
         if GG_x%<(GG_Resol%*GG_Nbutton%)
            GG_id% =int(mouse_x_position(0)/GG_Resol%)+1
            if GG_oid%<>GG_id%
               if GG_oid%>0
                  inactive GG_button%(GG_oid%)
                  GG_file$=dir_current$+"\icones\"+str$(GG_oid%)+".bmp"
                  file_load GG_button%(GG_oid%),GG_file$
               end_if
               if GG_id%>0
                  contrast GG_button%(GG_id%),-30
                  active GG_button%(GG_id%)
               end_if
               GG_oid%=GG_id%
            end_if
         else
            GG_id%=0
         end_if
      else
         GG_id%=0
      end_if
   else
     GG_id%=0
   end_if
return

' menu des clics bouton
GG_Menu:
   timer_off GG_timer%
   GG_Clic%=number_click
   Select GG_Clic%
   Case 1
      Message "1 - Ouvrir une partie enregistrée"
      show GG_panel%
      timer_on GG_timer%
   case 2
      Message "2 - Nouvelle partie"
      show GG_panel%
      timer_on GG_timer%
   case 3
      Message "3 - Enregistrer la partie"
   case 4
      Message "4 - Initialiser la partie"
      show GG_panel%
      timer_on GG_timer%
   case 5
      Player()
      timer_on GG_timer%
      timer_on GG_timer%
   case 6
      Message "6 - Tableau des scores"
      timer_on GG_timer%
   case 7
      Message "7 - Règle du jeu"
      timer_on GG_timer%
   End_select
return

' Joueurs
Sub Player()
   if frmPlayer%>0
      show frmPlayer%
   else
      no%=no%+1 : frmPlayer% =no%
      form no% : height no%,height(0) : width no%,250 :Caption no%,"Joueurs"
      top no%,top(0) : left no%,left(0)+width(0)+5
      
'     liste des joueurs
      no%=no%+1 : player_list%=no%
      List no% : parent no%,frmPlayer%
      top no%,0 : left no%,0 : width no%,width(frmPlayer%)-16 : height no%,height(frmPlayer%)-80
      font_name no%,"Times new roman" : font_size no%,10 :font_bold no%
      font_color no%,0,0,200
      if file_exists(dir_current$+"\Players.txt")=1 : file_load no%,dir_current$+"\Players.txt":end_if
      cursor_point no%
      on_click no%,Select_player

'     bouton d' jout d' un joueur
      no%=no%+1 : Addplayer_button%=no%
      button no% : parent no%,frmPlayer%
      height no%,22 : width no%,22
      top no%,height(frmPlayer%)-70 : left no%,width(frmPlayer%)-50
      caption no%,"+" : font_size no%,12 : font_bold no% : cursor_point no%
      on_click no%,Ajout_joueur
   end_if
End_sub


Select_player:
   if item_index(Player_list%)<>0
      Player$=item_index$(Player_list%)
      Caption 0,"Mon jeu         [Joueur : "+player$+"]"
      hide frmPlayer%
   end_if
return

Ajout_joueur:
   if message_input("Ajout d' un joueur","Nom du joueur : ","")=1
      item_add Player_list%,message_text$
      file_save Player_list%,dir_current$+"\Players.txt"
   end_if
return

close0:
   timer_off_all
return

Attention aux entre-chocages des timers... Laughing 
les images sont sur mon webdav dans le dossier complet.

Les images sont en 20x20 à partir d' icônes en 16x16 sur fond gris (239,239,239).

J' ai repris mon timer en fin du menu ( il n' y a que des messages  Wink ) 
mais il doit être repris dans chaque sous-menu.
Sinon, le menu restera inactif  Wink .

Après un ou deux, aller même 10 essais, le timer doit reprendre après l' initialisation de GG_clic%
et l' interval doit être de 200.

Ps : C est corrigé dans le code au-dessus


Dernière édition par ygeronimi le Ven 28 Mar 2014 - 23:43, édité 2 fois (Raison : Ajout de la sélection d' un joueur)
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

GUI for game Empty
MessageSujet: re   GUI for game EmptyVen 28 Mar 2014 - 23:42

J' ai ajouté la sélection du joueur dans une liste de joueurs enregistrés.

(Source modifié au dessus)
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

GUI for game Empty
MessageSujet: Re: GUI for game   GUI for game EmptySam 29 Mar 2014 - 0:51

Merci Ygeronimi pour ce partage.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

GUI for game Empty
MessageSujet: re   GUI for game EmptySam 29 Mar 2014 - 3:33

J' ai un peu modifié le code d' appel

P1 Nombre d' icones
P2 dimension du plateau de jeu (height)
P3 dimension du plateau de jeu (width)
P4 taille de l' icône (20 pour 20x20 px)
P5 Nom du jeu

J' ai placé le plateau de 2048 en un peu plus foncé pour visualiser.
Code:
' ------------------------------------------------------------------------------
'                              SOURCE D UN JEU
' ------------------------------------------------------------------------------
GUI_Games(7,316,316,20,"2048")
Plateau()

' - Il suffit de placer les éléments du graphiques visibles du jeu
' dans l' objet Panel ( parent obj%,GG_panel% )
' - Pour les  numéros d'objets de prendre la suite de no%
' toutes les variables globales utilisées sont précédées du préfixe "GG_"
' pour GUI_Games.
' - Les paramètres sont : nombre d'icones menu,height plateau du jeu,width plateau du jeu,
' resolution des icones, Nom du jeu
' - Le joueur sélectionné est dans Player$
' - Le score s' affiche dans GG_edit%

End

' ------------------------------------------------------------------------------
'                                GUI FOR GAMES
' ------------------------------------------------------------------------------

Sub GUI_Games(Bt%,Plat%,plat_w%,Resol%,C$)
  Dim no%,GG_button%(Bt%),GG_panel%,GG_edit%,GG_timer%,GG_id%,GG_oid%,GG_Resol%
  Dim GG_Nbutton%,GG_File$,GG_Clic%,GG_y%,GG_x%,GG_Alpha%,frmPlayer%
  Dim player_list%,Addplayer_button%,Player$
  Label GG_button_on,GG_Menu,Select_player,Ajout_joueur,close0
  dim_local x%,dep%,h%,w%,GG_hint$,sep%

  GG_Resol%  =Resol%
  GG_Nbutton%=Bt%
  GG_oid%    =0
  GG_hint$  ="Ouvrir une partie,Nouvelle partie,Enregistrer la partie,Initialiser la partie,Joueurs,Tableau des scores,Règles du jeu,"

'  dimensionnement du form 0
  Caption 0,C$
  h%=GG_Resol%+plat%+54
  height 0,h%
  w%=(GG_Resol%*Bt%)+178
  if (plat_w%+28)<w% :width 0,w% : else: width 0,(plat_w%+28)  : end_if
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2

'  affichage des boutons
  dep%=GG_Resol%*-1
  for x%=1 to Bt%
      no%=no%+1 : GG_button%(x%)=no%
      picture x%
      top x%,0
      left x%,dep%+(x%*GG_Resol%)
      height x%,GG_Resol%
      width x%,GG_Resol%
      file_load x%,dir_current$+"\icones\"+str$(x%)+".bmp"
      cursor_point x%
      sep%=instr(GG_hint$,",")
      if sep% >0 : hint x%,left$(GG_Hint$,sep%-1): end_if
      if len(GG_hint$)> sep% :GG_hint$=right$(GG_hint$,len(GG_hint$)-sep%) :end_if
      on_click x%,GG_Menu
      inactive x%
  next x%
 
'  Affichage du score
  no%=no%+1 : GG_Alpha%=no%
  Alpha no%
  top no%,3 : left no%,width(0)-145 :Caption no%,"Score :"
  font_name no%,"Times new roman" : font_size no%,10
 
  no%=no%+1 : GG_edit%=no%
  Edit no%
  top no%,2
  left no%,width(0)-105
  width no%,80
  height no%,Resol%-4

'  Espace de Jeu
  no%=no%+1 : GG_panel%=no%
  panel no%
  hide no%
  top no%,Resol%
  left no%,0
  height no%,height(0)-40-Resol%
  width no%,width(0)-18

'  Timer des boutons
  no%=no%+1: GG_timer%=no%
  timer no% : timer_interval no%,200 : on_timer no%,GG_button_on
 
'  fermeture par la croix
on_close 0,close0
End_sub

'  Fonction de survol des boutons
GG_button_on:
  GG_y% = mouse_y_position(0)
  GG_x% = mouse_x_position(0)
  if GG_y% <GG_Resol%
      if GG_x% >0
        if GG_x%<(GG_Resol%*GG_Nbutton%)
            GG_id% =int(mouse_x_position(0)/GG_Resol%)+1
            if GG_oid%<>GG_id%
              if GG_oid%>0
                  inactive GG_button%(GG_oid%)
                  GG_file$=dir_current$+"\icones\"+str$(GG_oid%)+".bmp"
                  file_load GG_button%(GG_oid%),GG_file$
              end_if
              if GG_id%>0
                  contrast GG_button%(GG_id%),-30
                  active GG_button%(GG_id%)
              end_if
              GG_oid%=GG_id%
            end_if
        else
            GG_id%=0
        end_if
      else
        GG_id%=0
      end_if
  else
    GG_id%=0
  end_if
return

' menu des clics bouton
GG_Menu:
  timer_off GG_timer%
  GG_Clic%=number_click
  Select GG_Clic%
  Case 1
      Message "1 - Ouvrir une partie enregistrée"
      show GG_panel%
      timer_on GG_timer%
  case 2
      Message "2 - Nouvelle partie"
      show GG_panel%
      timer_on GG_timer%
  case 3
      Message "3 - Enregistrer la partie"
  case 4
      Message "4 - Initialiser la partie"
      show GG_panel%
      timer_on GG_timer%
  case 5
      Player()
      timer_on GG_timer%
      timer_on GG_timer%
  case 6
      Message "6 - Tableau des scores"
      timer_on GG_timer%
  case 7
      Message "7 - Règle du jeu"
      timer_on GG_timer%
  End_select
return

' Joueurs
Sub Player()
  if frmPlayer%>0
      show frmPlayer%
  else
      no%=no%+1 : frmPlayer% =no%
      form no% : height no%,height(0) : width no%,250 :Caption no%,"Joueurs"
      top no%,top(0) : left no%,left(0)+width(0)+5
     
'    liste des joueurs
      no%=no%+1 : player_list%=no%
      List no% : parent no%,frmPlayer%
      top no%,0 : left no%,0 : width no%,width(frmPlayer%)-16 : height no%,height(frmPlayer%)-80
      font_name no%,"Times new roman" : font_size no%,10 :font_bold no%
      font_color no%,0,0,200
      if file_exists(dir_current$+"\Players.txt")=1 : file_load no%,dir_current$+"\Players.txt":end_if
      cursor_point no%
      on_click no%,Select_player

'    bouton d' jout d' un joueur
      no%=no%+1 : Addplayer_button%=no%
      button no% : parent no%,frmPlayer%
      height no%,22 : width no%,22
      top no%,height(frmPlayer%)-70 : left no%,width(frmPlayer%)-50
      caption no%,"+" : font_size no%,12 : font_bold no% : cursor_point no%
      on_click no%,Ajout_joueur
  end_if
End_sub


Select_player:
  if item_index(Player_list%)<>0
      Player$=item_index$(Player_list%)
      Caption 0,"Mon jeu        [Joueur : "+player$+"]"
      hide frmPlayer%
  end_if
return

Ajout_joueur:
  if message_input("Ajout d' un joueur","Nom du joueur : ","")=1
      item_add Player_list%,message_text$
      file_save Player_list%,dir_current$+"\Players.txt"
  end_if
return

close0:
  timer_off_all
return

' Affichage du plateau de jeu
Sub Plateau()
  dim_local x%,y%
  label touche
  FOR y%=1 to 4
      FOR x%=1 to 4
        no%=no%+1
        PICTURE no% : PARENT no%,GG_panel%
        color no%,100,100,100
        LEFT no%,x%*80-76 : TOP no%,y%*80-75
        WIDTH no%,79 : HEIGHT no%,79
        ON_KEY_DOWN 0 , touche
      NEXT x%
  NEXT y%
End_sub

touche:
return
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

GUI for game Empty
MessageSujet: Re: GUI for game   GUI for game EmptySam 29 Mar 2014 - 8:12

Bravo Ygeronimi, en maitrisant le squelette et en l'améliorant encore un peu au fil du temps, on gagnera du temps (enfin on en perdra moins avec les problème d'interface Wink )

J'ai modifié légèrement ton code:
Code:
' ------------------------------------------------------------------------------
'                              SOURCE D UN JEU
' ------------------------------------------------------------------------------
Dim Titre_jeu$ : Titre_jeu$ = "GUI d'un jeu"
Label touche
GUI_Games(7,316,316,20, Titre_jeu$)
Plateau()

' - Il suffit de placer les éléments du graphiques visibles du jeu
' dans l' objet Panel ( parent obj%,GG_panel% )
' - Pour les  numéros d'objets de prendre la suite de no%
' toutes les variables globales utilisées sont précédées du préfixe "GG_"
' pour GUI_Games.
' - Les paramètres sont : nombre d'icones menu,height plateau du jeu,width plateau du jeu,
' resolution des icones, Nom du jeu
' - Le joueur sélectionné est dans Player$
' - Le score s' affiche dans GG_edit%

End

' ------------------------------------------------------------------------------
'                                GUI FOR GAMES
' ------------------------------------------------------------------------------

Sub GUI_Games(Bt%,Plat%,plat_w%,Resol%,C$)
  Dim no%,GG_button%(Bt%),GG_panel%,GG_edit%,GG_timer%,GG_id%,GG_oid%,GG_Resol%
  Dim GG_Nbutton%,GG_File$,GG_Clic%,GG_y%,GG_x%,GG_Alpha%,frmPlayer%
  Dim player_list%,Addplayer_button%,Player$
  Label GG_button_on,GG_Menu,Select_player,Ajout_joueur,close0
  dim_local x%,dep%,h%,w%,GG_hint$,sep%

  GG_Resol%  =Resol%
  GG_Nbutton%=Bt%
  GG_oid%    =0
  GG_hint$  ="Ouvrir une partie,Nouvelle partie,Enregistrer la partie,Initialiser la partie,Joueurs,Tableau des scores,Règles du jeu,"

'  dimensionnement du form 0
  Caption 0,C$
  h%=GG_Resol%+plat%+54
  height 0,h%
  w%=(GG_Resol%*Bt%)+178
  if (plat_w%+28)<w% :width 0,w% : else: width 0,(plat_w%+28)  : end_if
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2

'  affichage des boutons
  dep%=GG_Resol%*-1
  for x%=1 to Bt%
      no%=no%+1 : GG_button%(x%)=no%
      picture x%
      top x%,0
      left x%,dep%+(x%*GG_Resol%)
      height x%,GG_Resol%
      width x%,GG_Resol%
      file_load x%,dir_current$+"\icones\"+str$(x%)+".bmp"
      cursor_point x%
      sep%=instr(GG_hint$,",")
      if sep% >0 : hint x%,left$(GG_Hint$,sep%-1): end_if
      if len(GG_hint$)> sep% :GG_hint$=right$(GG_hint$,len(GG_hint$)-sep%) :end_if
      on_click x%,GG_Menu
      inactive x%
  next x%

'  Affichage du score
  no%=no%+1 : GG_Alpha%=no%
  Alpha no%
  top no%,3 : left no%,width(0)-145 :Caption no%,"Score :"
  font_name no%,"Times new roman" : font_size no%,10

  no%=no%+1 : GG_edit%=no%
  Edit no%
  top no%,2
  left no%,width(0)-105
  width no%,80
  height no%,Resol%-4

'  Espace de Jeu
  no%=no%+1 : GG_panel%=no%
  panel no%
  hide no%
  top no%,Resol%
  left no%,0
  height no%,height(0)-40-Resol%
  width no%,width(0)-18

'  Timer des boutons
  no%=no%+1: GG_timer%=no%
  timer no% : timer_interval no%,200 : on_timer no%,GG_button_on

'  fermeture par la croix
on_close 0,close0
OFF_KEY_DOWN 0
End_sub

'  Fonction de survol des boutons
GG_button_on:
  GG_y% = mouse_y_position(0)
  GG_x% = mouse_x_position(0)
  if GG_y% <GG_Resol%
      if GG_x% >0
        if GG_x%<(GG_Resol%*GG_Nbutton%)
            GG_id% =int(mouse_x_position(0)/GG_Resol%)+1
            if GG_oid%<>GG_id%
              if GG_oid%>0
                  inactive GG_button%(GG_oid%)
                  GG_file$=dir_current$+"\icones\"+str$(GG_oid%)+".bmp"
                  file_load GG_button%(GG_oid%),GG_file$
              end_if
              if GG_id%>0
                  contrast GG_button%(GG_id%),-30
                  active GG_button%(GG_id%)
              end_if
              GG_oid%=GG_id%
            end_if
        else
            GG_id%=0
        end_if
      else
        GG_id%=0
      end_if
  else
    GG_id%=0
  end_if
return

' menu des clics bouton
GG_Menu:
  Timer_off GG_timer%
  GG_Clic%=number_click
  Select GG_Clic%
  Case 1
      Message "1 - Ouvrir une partie enregistrée"
      show GG_panel%
  Case 2
      Message "2 - Nouvelle partie"
      show GG_panel%
  Case 3
      Message "3 - Enregistrer la partie"
  Case 4
      Message "4 - Initialiser la partie"
      show GG_panel%
  Case 5
      Player()
  Case 6
      Message "6 - Tableau des scores"
  Case 7
      Message "7 - Règle du jeu"
  End_select
  Timer_on GG_timer%
return

' Joueurs
Sub Player()
  if frmPlayer%>0
      show frmPlayer%
  else
      no%=no%+1 : frmPlayer% =no%
      form no% : height no%,height(0) : width no%,250 :Caption no%,"Joueurs"
      top no%,top(0) : left no%,left(0)+width(0)+5

'    liste des joueurs
      no%=no%+1 : player_list%=no%
      List no% : parent no%,frmPlayer%
      top no%,0 : left no%,0 : width no%,width(frmPlayer%)-16 : height no%,height(frmPlayer%)-80
      font_name no%,"Times new roman" : font_size no%,10 :font_bold no%
      font_color no%,0,0,200
      if file_exists(dir_current$+"\Players.txt")=1 : file_load no%,dir_current$+"\Players.txt":end_if
      cursor_point no%
      on_click no%,Select_player

'    bouton d' jout d' un joueur
      no%=no%+1 : Addplayer_button%=no%
      button no% : parent no%,frmPlayer%
      height no%,22 : width no%,22
      top no%,height(frmPlayer%)-70 : left no%,width(frmPlayer%)-50
      caption no%,"+" : font_size no%,12 : font_bold no% : cursor_point no%
      on_click no%,Ajout_joueur
  end_if
End_sub

Select_player:
  if item_index(Player_list%)<>0
      Player$=item_index$(Player_list%)
      Caption 0,Titre_jeu$ + "        [Joueur : "+player$+"]"
      hide frmPlayer%
  end_if
return

Ajout_joueur:
  if message_input("Ajout d' un joueur","Nom du joueur : ","")=1
      item_add Player_list%,message_text$
      file_save Player_list%,dir_current$+"\Players.txt"
  end_if
return

close0:
  timer_off_all
return

' Affichage du plateau de jeu
Sub Plateau()
  dim_local x%,y%
  Message "Affichage du plateau"
End_sub

touche:
  OFF_KEY_DOWN 0
      Message "Touche appuyée a traiter"
  ON_KEY_DOWN 0 , touche
return
Revenir en haut Aller en bas
Contenu sponsorisé





GUI for game Empty
MessageSujet: Re: GUI for game   GUI for game Empty

Revenir en haut Aller en bas
 
GUI for game
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» game for practice
» Coordination / Avancement / Demande de travail et IRC
» Castle game Engine
» Pré-version de TOONIC Game Maker
» Pré-version de TOONIC Game Maker V 0.0.1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: