FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Saute-mouton

Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 0:52

ZUT !!! J' ai pas mis la MAJ de OBJ_SUB.bas

il faut rajouter :
Code:
' ______________________________________________________________________________
Sub O_Check(No%,P%,V%,T%,L%,H%,W%,C$)
  CHECK No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
End_Sub

dans OBJ_SUB.bas

PS:

J' ai contourné le problème qui va vous apparaître
mais ce n'est tout de même pas un comportement normal.
Je demande juste de changer l'image et il me remet tous les sprites à 0,0... scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 1:27

Saute Mouton "Aller / retour"

Combien d'aller retour ferez vous avant de vous trompez ? Twisted Evil
Code:
' ******************************************************************************
' *                                  JEU                                      *
' *                                  DE                                      *
' *                              SAUTE MOUTON                                *
' *                                  -------                                  *
' *                                  PAR                                      *
' *                                Y.GERONIMI                                  *
' *                      SUR UNE SUGGESTION DE PAPYDALL                      *
' ******************************************************************************
variables()
constantes()
labels()
init_dll()
gui()


on_close 0,close
end

'  -DECLARATIONS

  Sub variables()
      dim Clic%
      dim SP%(10),C%,M%,dplct% ,Mode% ,Sens%
      Sens%=1
  End_Sub
 
  Sub constantes()
      dim KGF$
      KGF$    = dir_current$+"\KGF.dll"
      dim mouton1$,mouton2$,scene$,vide$,help$,reload$,exit$,help2$,reload2$,exit2$
      dim mouton1b$,mouton2b$
      scene$  = dir_current$+"\pict\scene.bmp"
      vide$    = dir_current$+"\pict\vide.bmp"
      mouton1$ = dir_current$+"\pict\mouton1.bmp"
      mouton2$ = dir_current$+"\pict\mouton2.bmp"
      mouton1b$= dir_current$+"\pict\mouton1b.bmp"
      mouton2b$= dir_current$+"\pict\mouton2b.bmp"
      help$    = dir_current$+"\img\On_HelpButton.jpg"
      help2$  = dir_current$+"\img\Out_HelpButton.jpg"
      reload$  = dir_current$+"\img\On_ChangeButton.jpg"
      reload2$ = dir_current$+"\img\Out_ChangeButton.jpg"
      exit$    = dir_current$+"\img\On_OutButton.jpg"
      exit2$  = dir_current$+"\img\Out_OutButton.jpg"
  End_Sub
 
  Sub labels()
      label Clic,Close
  End_Sub
 
'  -INITIALISATION DLL

  Sub init_dll()
      KGF_Initialize(KGF$)
  End_Sub
 
'  -INTERFACE

  Sub gui()
      dim_local x%
      O_Form(0,0,1,0,0,250,516,"Jeu de Saute Mouton"):font_name 0,"arial"
      O_Scene2D(1,0,1,50,25,50,450,1):file_load 1,scene$:cursor_point 1
      for x%=1 to 9
        sprite x% :sprite_position x%,0,0
      next x%
      init_SpritePosition(1)
      O_Alpha(3,0,1,110,150,0,0,""):font_bold 3:font_color 3,255,0,0
     
      O_Button_Picture(100,7001,0,0,1,Height(0)-118,220,25,25,help$,help2$)
      hint 100,"Aide"
      O_Button_Picture(102,7003,0,0,1,Height(0)-118,255,25,25,reload$,reload2$)
      hint 102,"Remise à Zéro"
      O_Container(4,0,0,height(0)-93,5,55,width(0)-26,"")
      O_Alpha(5,4,1,8,10,0,0,"Faites passer les moutons d'un coté à un autre ")
      O_Alpha(6,4,1,23,10,0,0,"Faites avancer un mouton de plus que celui de la couleur précédente")
      O_Alpha(7,4,1,38,10,0,0,"Mode Aller / retour, faites le plus de croisements possibles...")
      O_Button_Picture(104,7005,4,0,1,Height(4)-28,width(4)-28,25,25,exit$,exit2$)
      O_Check(108,0,1,10,10,0,150,"Mode : Aller Simple"):on_click 108,clic

      O_Alpha(106,0,0,10,300,0,0,"Nombre de croisement :")
      O_Edit(107,0,0,8,430,0,40,string$(4," ")+"0",0):font_name 107,"courier new":font_bold 107
     
     
  End_Sub
 
'  -FONCTIONS
  Clic:
      Clic%=Number_Click
      Select Clic%
      '  Boutons visibles
        case 1  :Move_mouton()
        case 100 :Help_Jeu()
        case 102 :Init_Jeu()
        case 104 :Close_help()
        case 108 :Mode()
      '  Boutons invisibles
        case 7001: show 100
        case 7002: hide 100
        case 7003: show 102
        case 7004: hide 102
        case 7005: show 104
        case 7006: hide 104
      End_Select
  return
 
  Close:
      ClickClearHook(0)
  return
 
  Sub Help_Jeu()
      show 4
  End_Sub
 
  Sub Init_Jeu()
      init_SpritePosition(1)
      text 107,string$(4," ")+"0"
      caption 3,""
  End_Sub

  Sub Close_help()
      hide 4
  End_Sub
 
  Sub Mode()
      if checked(108)=1
        Caption 108,"Mode : Aller / Retour"
        Mode%=2
        show 106
        show 107
      else
        Caption 108,"Mode : Aller Simple"
        Mode%=1
        hide 106
        hide 107
      end_if
  End_Sub

'  initialisation des emplacements des moutons
  Sub init_SpritePosition(S%)
      dim_local x%,T%,L%
      T%=0: L%=-50
      if S%=1
        for x%=1 to 4:sprite_file_load x%,mouton1$:next x%
        sprite_file_load 5,vide$
        for x%=6 to 9:sprite_file_load x%,mouton2$:next x%
      else
        for x%=1 to 4:sprite_file_load x%,mouton2b$:next x%
        sprite_file_load 5,vide$
        for x%=6 to 9:sprite_file_load x%,mouton1b$:next x%
      end_if
      for x%=1 to 9
        L%=L%+50
        sprite_position x%,L%,T%
        SP%(x%)=x%
      next x%
  End_Sub

'  déplacement d'un mouton______________________________________________________
  Sub Move_Mouton()
      SelectMouton()
      if dplct%=1
        DplaceGD()
      else
        DplaceDG()
      end_if
      verif_victory()
  End_Sub
 
'  détection du sprite cliqué
  Sub SelectMouton()
      dim_local x%
      x%=mouse_x_position(1)
      if x% <49 : C%=1 :End_if
      if x% >49  And x%<99 :C%=2 :End_if
      if x% >99  And x%<150 :C%=3 :End_if
      if x% >149 And x%<200 :C%=4 :End_if
      if x% >199 And x%<250 :C%=5 :End_if
      if x% >249 And x%<300 :C%=6 :End_if
      if x% >299 And x%<350 :C%=7 :End_if
      if x% >349 And x%<400 :C%=8 :End_if
      if x% >399 And x%<450 :C%=9 :End_if
     
      M%=SP%(C%)
      if M%>0 and M%<5 :dplct%=1 :End_if
      if M%>5 and M%<10:dplct%=2 :End_if
  End_Sub
 
'  déplacement des moutons de la gauche vers la droite (jaunes)
  Sub DplaceGD()
      dim_local x% ,posSP5% ,posSPx%
      If C%<9
      If SP%(C%+1)<>5 and SP%(C%+2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%+1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+50
            SP%(C%)=5 :SP%(C%+1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            if SP%(C%+2)=5 and SP%(C%+1)<5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+100
              SP%(C%)=5 :SP%(C%+2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
'  déplacement des moutons de la droite vers la gauche (roses)
  Sub DplaceDG()
      dim_local x% ,posSP5% ,posSPx%
      if C%>1
      if SP%(C%-1)<>5 and SP%(C%-2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%-1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-50
            SP%(C%)=5 :SP%(C%-1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            IF SP%(C%-2)=5 and SP%(C%-1)>5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-100
              SP%(C%)=5 :SP%(C%-2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
  Sub Verif_Victory()
      dim_local x%,V%,score$
      V%=0
      for x%=1 to 4 : if SP%(x%)<>x%+5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      for x%=6 to 9 : if SP%(x%)<>x%-5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      if V%=8
        if mode%=2
            score$=str$(val(text$(107))+1)
            text 107,string$(5-len(score$)," ")+score$
            if Sens%=1 :Sens%=2:else:Sens%=1:end_if
            Init_SpritePosition(Sens%)
        else
            Message "BRAVO !!! VOUS ETES UN CHAMPION !!!"
        end_if
      end_if
  end_sub
 
'  -INCLUDES

  #include "KGF_SUB.bas"
  #include "OBJ_SUB.bas"

OBJ_SUB.bas :
Code:
' ______________________________________________________________________________
Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$)
  if No%> 0 then FORM No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If
  If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If
  if C$<>"" then Caption No%,C$
End_Sub
' ______________________________________________________________________________
Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$)
  ALPHA No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
End_Sub
' ______________________________________________________________________________
Sub O_Edit(No%,P%,V%,T%,L%,H%,W%,T$,Ch%)
  EDIT No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  If T$<>"" Then Text No%,T$
  If Ch%=1  Then On_Change No%,Change
End_Sub
' ______________________________________________________________________________
Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%)
  BUTTON No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
  if Cl%> 0 then on_click No%,Clic
  cursor_point No%
End_Sub
' ______________________________________________________________________________
Sub O_Container(No%,P%,V%,T%,L%,H%,W%,C$)
  CONTAINER No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
End_Sub
' ______________________________________________________________________________
Sub O_Picture(No%,P%,V%,T%,L%,H%,W%,P$)
  PICTURE No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if P$<>"" then File_load No%,P$
End_Sub
' ______________________________________________________________________________
Sub O_Main_Menu(No%,P%)
  MAIN_MENU No%
  if P% > 0 then Parent No%,P%
End_Sub
' ______________________________________________________________________________
Sub O_Sub_Menu(No%,P%,C$,Cl%,A%)
  SUB_MENU No%
  if P% > 0 then Parent No%,P%
  if C$<>"" then Caption No%,C$
  If Cl%=1 : on_click No%,Clic  : end_if
  If Cl%=2 : on_click No%,Clic2 : end_if
  If Cl%=3 : on_click No%,Clic3 : end_if
  If Cl%=4 : on_click No%,Clic4 : end_if
  If A%=0 then inactive No%
End_Sub
' ______________________________________________________________________________
Sub O_Sound(No%,P%,S$)
  SOUND No%
  If P%>0 then Parent No%,P%
  If S$<>"" then file_load No%,S$
End_Sub
' ______________________________________________________________________________
Sub O_Dlist(No%,F$)
  DLIST No%
  if F$<>"" then file_load No%,F$
End_Sub
' ______________________________________________________________________________
Sub O_Scene2D(No%,P%,V%,T%,L%,H%,W%,Cl%)
  SCENE2D No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  If Cl%> 0 Then On_Click No%,Clic
End_Sub
' ______________________________________________________________________________
Sub O_Timer(No%,OO%,Inter%)
  TIMER No%
  if OO%=1 then timer_on No%
  if OO%=0 then timer_off No%
  if inter%>0 then timer_interval No%,inter%
End_Sub
' ______________________________________________________________________________
Sub O_Button_Picture(No%,No_b%,P%,V1%,V2%,T%,L%,H%,W%,Pict$,Pict2$)
  O_Picture(No%+1,P%,V2%,T%,L%,H%,W%,Pict2$):cursor_point No%+1
  O_Picture(No%,P%,V1%,T%,L%,H%,W%,Pict$):On_click No%,Clic:cursor_point No%
  if variable("No2%")=0 : dim No2% :No2%=7000 :End_if
  if Variable("R%")=0 :dim R% :R%=1:else :R%=R%+1 :end_if
  if Object_exists(7000)=0 :O_Edit(7000,P%,0,-190,-200,0,0):End_If
  If Variable("KGF_res%")=0 then dim KGF_res%
  KGF_res% = dll_call2("ClickSetHook",handle(P%),handle(No2%))
  KGF_res% = dll_call5("ClickDefineRect",R%,L%,T%,W%,H%)

  No2%=No_b%
  O_Button(No2%,P%,0,-200,-200,0,0,"",1)
  KGF_res% = dll_call3("ClickSetLinkRect",handle(No2%),0-5,R%)

  No2%=No_b%+1
  O_Button(No2%,P%,0,-200,-200,0,0,"",1)
  KGF_res% = dll_call3("ClickSetLinkRect",handle(No2%),0-6,R%)
End_Sub
' ______________________________________________________________________________
Sub O_Check(No%,P%,V%,T%,L%,H%,W%,C$)
  CHECK No%
  if P% > 0 then Parent No%,P%
  If V% = 0 Then hide No%
  If H% > 0 Then Height No%,H%
  If W% > 0 Then Width No%,W%
  If T% > 0 Then Top No%,T%
  If L% > 0 Then Left No%,L%
  if C$<>"" then Caption No%,C$
End_Sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Mer 22 Mai 2013 - 1:54

A l’aide de MSPAINT.EXE Je fais retourner horizontalement, mouton1.bmp : == > sauvegarder sous mouton1D.bmp.
Même chose pour mouton2.bmp , retourné horizontalement et sauvegardé sous mouton2G.bmp

Tu dois ajouter (ligne 264) INIT_SpritePosition()

J’ai modifié le code comme ceci
Code:
' ******************************************************************************
' *                                  JEU                                      *
' *                                  DE                                      *
' *                              SAUTE MOUTON                                *
' *                                  -------                                  *
' *                                  PAR                                      *
' *                                Y.GERONIMI                                  *
' *                      SUR UNE SUGGESTION DE PAPYDALL                      *
' ******************************************************************************
variables()
constantes()
labels()
init_dll()
gui()


on_close 0,close
end

'  -DECLARATIONS

  Sub variables()
      dim Clic%
      dim SP%(10),C%,M%,dplct% ,Mode%
  End_Sub

  Sub constantes()
      dim KGF$
      KGF$    = dir_current$+"\KGF.dll"
      dim mouton1$,mouton2$,scene$,vide$,help$,reload$,exit$,help2$,reload2$,exit2$
      dim mouton1d$,mouton2g$
      scene$  = dir_current$+"\pict\scene.bmp"
      vide$    = dir_current$+"\pict\vide.bmp"
      mouton1$ = dir_current$+"\pict\mouton1.bmp"
      mouton2$ = dir_current$+"\pict\mouton2.bmp"
      MOUTON1D$ = dir_current$+"\pict\mouton1d.bmp" : ' regardant vers la droite
      MOUTON2G$ = dir_current$+"\pict\mouton2g.bmp" : ' regardant vers la gauche
      help$    = dir_current$+"\img\On_HelpButton.jpg"
      help2$  = dir_current$+"\img\Out_HelpButton.jpg"
      reload$  = dir_current$+"\img\On_ChangeButton.jpg"
      reload2$ = dir_current$+"\img\Out_ChangeButton.jpg"
      exit$    = dir_current$+"\img\On_OutButton.jpg"
      exit2$  = dir_current$+"\img\Out_OutButton.jpg"

  End_Sub

  Sub labels()
      label Clic,Close
  End_Sub

'  -INITIALISATION DLL

  Sub init_dll()
      KGF_Initialize(KGF$)
  End_Sub

'  -INTERFACE

  Sub gui()
      dim_local x%
      O_Form(0,0,1,0,0,250,516,"Jeu de Saute Mouton"):font_name 0,"arial"
      O_Scene2D(1,0,1,50,25,50,450,1):file_load 1,scene$:cursor_point 1
      for x%=1 to 9
        sprite x% :sprite_position x%,0,0
      next x%
      for x%=1 to 4
        sprite_file_load x%,mouton1$
      next x%
      sprite_file_load 5,vide$
      for x%=6 to 9
        sprite_file_load x%,mouton2$
      next x%
      init_SpritePosition()
      O_Alpha(3,0,1,110,150,0,0,""):font_bold 3:font_color 3,255,0,0

      O_Button_Picture(100,7001,0,0,1,Height(0)-118,220,25,25,help$,help2$)
      hint 100,"Aide"
      O_Button_Picture(102,7003,0,0,1,Height(0)-118,255,25,25,reload$,reload2$)
      hint 102,"Remise à Zéro"
      O_Container(4,0,0,height(0)-93,5,55,width(0)-26,"")
      O_Alpha(5,4,1,8,10,0,0,"Faites passer les moutons d'un coté à un autre ")
      O_Alpha(6,4,1,23,10,0,0,"Faites avancer un mouton de plus que celui de la couleur précédente")
      O_Alpha(7,4,1,38,10,0,0,"Mode Aller / retour, faites le plus de croisements possibles...")
      O_Button_Picture(104,7005,4,0,1,Height(4)-28,width(4)-28,25,25,exit$,exit2$)
      O_Check(108,0,1,10,10,0,150,"Mode : Aller Simple"):on_click 108,clic

      O_Alpha(106,0,0,10,300,0,0,"Nombre de croisement :")
      O_Edit(107,0,0,8,430,0,40,string$(4," ")+"0",0):font_name 107,"courier new":font_bold 107


  End_Sub

'  -FONCTIONS
  Clic:
      Clic%=Number_Click
      Select Clic%
      '  Boutons visibles
        case 1  :Move_mouton()
        case 100 :Help_Jeu()
        case 102 :Init_Jeu()
        case 104 :Close_help()
        case 108 :Mode()
      '  Boutons invisibles
        case 7001: show 100
        case 7002: hide 100
        case 7003: show 102
        case 7004: hide 102
        case 7005: show 104
        case 7006: hide 104
      End_Select
  return

  Close:
      ClickClearHook(0)
  return

  Sub Help_Jeu()
      show 4
  End_Sub

  Sub Init_Jeu()
      init_SpritePosition()
      caption 3,""
  End_Sub

  Sub Close_help()
      hide 4
  End_Sub

  Sub Mode()
      if checked(108)=1
        Caption 108,"Mode : Aller / Retour"
        Mode%=2
        show 106
        show 107
      else
        Caption 108,"Mode : Aller Simple"
        Mode%=1
        hide 106
        hide 107
      end_if
  End_Sub

'  initialisation des emplacements des moutons
  Sub init_SpritePosition()
      dim_local x%,T%,L%
      T%=0: L%=-50
      for x%=1 to 9
        L%=L%+50
        sprite_position x%,L%,T%
        SP%(x%)=x%
      next x%
  End_Sub

'  déplacement d'un mouton______________________________________________________
  Sub Move_Mouton()
      SelectMouton()
      if dplct%=1
        DplaceGD()
      else
        DplaceDG()
      end_if
      verif_victory()
  End_Sub

'  détection du sprite cliqué
  Sub SelectMouton()
      dim_local x%
      x%=mouse_x_position(1)
      if x% <49 : C%=1 :End_if
      if x% >49  And x%<99 :C%=2 :End_if
      if x% >99  And x%<150 :C%=3 :End_if
      if x% >149 And x%<200 :C%=4 :End_if
      if x% >199 And x%<250 :C%=5 :End_if
      if x% >249 And x%<300 :C%=6 :End_if
      if x% >299 And x%<350 :C%=7 :End_if
      if x% >349 And x%<400 :C%=8 :End_if
      if x% >399 And x%<450 :C%=9 :End_if

      M%=SP%(C%)
      if M%>0 and M%<5 :dplct%=1 :End_if
      if M%>5 and M%<10:dplct%=2 :End_if
  End_Sub

'  déplacement des moutons de la gauche vers la droite (jaunes)
  Sub DplaceGD()
      dim_local x% ,posSP5% ,posSPx%
      If C%<9
      If SP%(C%+1)<>5 and SP%(C%+2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%+1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+50
            SP%(C%)=5 :SP%(C%+1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            if SP%(C%+2)=5 and SP%(C%+1)<5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+100
              SP%(C%)=5 :SP%(C%+2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub

'  déplacement des moutons de la droite vers la gauche (roses)
  Sub DplaceDG()
      dim_local x% ,posSP5% ,posSPx%
      if C%>1
      if SP%(C%-1)<>5 and SP%(C%-2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%-1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-50
            SP%(C%)=5 :SP%(C%-1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            IF SP%(C%-2)=5 and SP%(C%-1)>5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-100
              SP%(C%)=5 :SP%(C%-2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub

  Sub Verif_Victory()
      dim_local x%,V%,score$
      V%=0
      for x%=1 to 4 : if SP%(x%)<>x%+5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      for x%=6 to 9 : if SP%(x%)<>x%-5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      if V%=8
        if mode%=2
            score$=str$(val(text$(107))+1)
            text 107,string$(5-len(score$)," ")+score$
            for x%=1 to 4:Sprite_file_load x%,mouton2g$:next x% : ' modifier
            for x%=6 to 9:Sprite_file_load x%,mouton1d$:next x% : ' ces 3
            init_SpritePosition()                              : ' lignes
        else
            Message "BRAVO !!! VOUS ETES UN CHAMPION !!!"
        end_if
      end_if
  end_sub

'  -INCLUDES

  #include "KGF_SUB.bas"
  #include "OBJ_SUB.bas"

ET ÇA MARCHE !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 2:02

Dans le code posté juste avant ton dernier post,
j'ai résolu mon problème mais malheureusement j' ai oublié ( encore une fois)
de dire que les images sont sur mon webdav

Sources\Jeux\Jeu_du_saute_mouton.zip
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Saute-mouton   Mer 22 Mai 2013 - 2:07

EDIT : je n'ai pas vu ton dernier post .
On a trouvé la même chose c.à.d : ajouter Init_SpritePosition avec une petite différence, mais l'essentiel c'est que ça marche.

Re EDIT : Maintenant, je dois solliciter ma matière grise pour trouver un autre sujet de programme.
Je crains que ça ne soit pas une mince affaire !

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 2:30

Je suis entrain d'ajouter un message pour une partie bloquée
avec soit rejouer, soit quitter.


Je suis sûr que tu trouveras une idée de jeu
ce qui me fait peur, c' est comment on s' y prendra
pour la programmer... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 22 Mai 2013 - 3:26

Ajout d'un message en cas de partie bloquée
Code:
' ******************************************************************************
' *                                  JEU                                      *
' *                                  DE                                      *
' *                              SAUTE MOUTON                                *
' *                                  -------                                  *
' *                                  PAR                                      *
' *                                Y.GERONIMI                                  *
' *                      SUR UNE SUGGESTION DE PAPYDALL                      *
' ******************************************************************************
variables()
constantes()
labels()
init_dll()
gui()


on_close 0,close
end

'  -DECLARATIONS

  Sub variables()
      dim Clic%
      dim SP%(10),C%,M%,dplct% ,Mode% ,Sens%
      Sens%=1
  End_Sub
 
  Sub constantes()
      dim KGF$
      KGF$    = dir_current$+"\KGF.dll"
      dim mouton1$,mouton2$,scene$,vide$,help$,reload$,exit$,help2$,reload2$,exit2$
      dim mouton1b$,mouton2b$
      scene$  = dir_current$+"\pict\scene.bmp"
      vide$    = dir_current$+"\pict\vide.bmp"
      mouton1$ = dir_current$+"\pict\mouton1.bmp"
      mouton2$ = dir_current$+"\pict\mouton2.bmp"
      mouton1b$= dir_current$+"\pict\mouton1b.bmp"
      mouton2b$= dir_current$+"\pict\mouton2b.bmp"
      help$    = dir_current$+"\img\On_HelpButton.jpg"
      help2$  = dir_current$+"\img\Out_HelpButton.jpg"
      reload$  = dir_current$+"\img\On_ChangeButton.jpg"
      reload2$ = dir_current$+"\img\Out_ChangeButton.jpg"
      exit$    = dir_current$+"\img\On_OutButton.jpg"
      exit2$  = dir_current$+"\img\Out_OutButton.jpg"
  End_Sub
 
  Sub labels()
      label Clic,Close,Quitter
  End_Sub
 
'  -INITIALISATION DLL

  Sub init_dll()
      KGF_Initialize(KGF$)
  End_Sub
 
'  -INTERFACE

  Sub gui()
      dim_local x%
      O_Form(0,0,1,0,0,250,516,"Jeu de Saute Mouton"):font_name 0,"arial"
      O_Scene2D(1,0,1,50,25,50,450,1):file_load 1,scene$:cursor_point 1
      for x%=1 to 9
        sprite x% :sprite_position x%,0,0
      next x%
      init_SpritePosition(1)
      O_Alpha(3,0,1,110,150,0,0,""):font_bold 3:font_color 3,255,0,0
     
      O_Button_Picture(100,7001,0,0,1,Height(0)-118,220,25,25,help$,help2$)
      hint 100,"Aide"
      O_Button_Picture(102,7003,0,0,1,Height(0)-118,255,25,25,reload$,reload2$)
      hint 102,"Remise à Zéro"
      O_Container(4,0,0,height(0)-93,5,55,width(0)-26,"")
      O_Alpha(5,4,1,8,10,0,0,"Faites passer les moutons d'un coté à un autre ")
      font_color 5,130,0,10
      O_Alpha(6,4,1,23,10,0,0,"Faites avancer un mouton de plus que celui de la couleur précédente")
      font_color 6,130,0,10
      O_Alpha(7,4,1,38,10,0,0,"Mode Aller / retour, faites le plus de croisements possibles...")
      font_color 7,130,0,10
      O_Button_Picture(104,7005,4,0,1,Height(4)-28,width(4)-28,25,25,exit$,exit2$)
      O_Check(108,0,1,10,10,0,150,"Mode : Aller Simple"):on_click 108,clic
      font_name 108,"Times new roman":font_size 108,10
      O_Alpha(106,0,0,10,300,0,0,"Nombre de croisement :")
      font_name 106,"Times new roman" :font_size 106,10:font_color 106,0,0,255
      O_Edit(107,0,0,8,430,0,40,string$(4," ")+"0",0):font_name 107,"courier new":font_bold 107
      color 107,246,236,168:font_color 107,255,0,0
  End_Sub
 
'  -FONCTIONS
  Clic:
      Clic%=Number_Click
      Select Clic%
      '  Boutons visibles
        case 1  :Move_mouton()
        case 100 :Help_Jeu()
        case 102 :Init_Jeu()
        case 104 :Close_help()
        case 108 :Mode()
      '  Boutons invisibles
        case 7001: show 100
        case 7002: hide 100
        case 7003: show 102
        case 7004: hide 102
        case 7005: show 104
        case 7006: hide 104
      End_Select
  return
 
  Close:
      ClickClearHook(0)
  return
 
  Sub Help_Jeu()
      show 4
  End_Sub
 
  Sub Init_Jeu()
      init_SpritePosition(1)
      text 107,string$(4," ")+"0"
      caption 3,""
  End_Sub

  Sub Close_help()
      hide 4
  End_Sub
 
  Sub Mode()
      if checked(108)=1
        Caption 108,"Mode : Aller / Retour"
        Mode%=2
        show 106
        show 107
      else
        Caption 108,"Mode : Aller Simple"
        Mode%=1
        hide 106
        hide 107
      end_if
  End_Sub

'  initialisation des emplacements des moutons
  Sub init_SpritePosition(S%)
      dim_local x%,T%,L%
      T%=0: L%=-50
      if S%=1
        for x%=1 to 4:sprite_file_load x%,mouton1$:next x%
        sprite_file_load 5,vide$
        for x%=6 to 9:sprite_file_load x%,mouton2$:next x%
      else
        for x%=1 to 4:sprite_file_load x%,mouton2b$:next x%
        sprite_file_load 5,vide$
        for x%=6 to 9:sprite_file_load x%,mouton1b$:next x%
      end_if
      for x%=1 to 9
        L%=L%+50
        sprite_position x%,L%,T%
        SP%(x%)=x%
      next x%
  End_Sub

'  déplacement d'un mouton______________________________________________________
  Sub Move_Mouton()
      SelectMouton()
      if dplct%=1
        DplaceGD()
      else
        DplaceDG()
      end_if
      verif_victory()
  End_Sub
 
'  détection du sprite cliqué
  Sub SelectMouton()
      dim_local x%
      x%=mouse_x_position(1)
      if x% <49 : C%=1 :End_if
      if x% >49  And x%<99 :C%=2 :End_if
      if x% >99  And x%<150 :C%=3 :End_if
      if x% >149 And x%<200 :C%=4 :End_if
      if x% >199 And x%<250 :C%=5 :End_if
      if x% >249 And x%<300 :C%=6 :End_if
      if x% >299 And x%<350 :C%=7 :End_if
      if x% >349 And x%<400 :C%=8 :End_if
      if x% >399 And x%<450 :C%=9 :End_if
     
      M%=SP%(C%)
      if M%>0 and M%<5 :dplct%=1 :End_if
      if M%>5 and M%<10:dplct%=2 :End_if
  End_Sub
 
'  déplacement des moutons de la gauche vers la droite (jaunes)
  Sub DplaceGD()
      dim_local x% ,posSP5% ,posSPx%
      If C%<9
      If SP%(C%+1)<>5 and SP%(C%+2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%+1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+50
            SP%(C%)=5 :SP%(C%+1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            if SP%(C%+2)=5 and SP%(C%+1)<5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%-100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%+100
              SP%(C%)=5 :SP%(C%+2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
'  déplacement des moutons de la droite vers la gauche (roses)
  Sub DplaceDG()
      dim_local x% ,posSP5% ,posSPx%
      if C%>1
      if SP%(C%-1)<>5 and SP%(C%-2)<>5
        Caption 3,"Déplacement impossible"
      Else
        if SP%(C%-1)=5
            x%=SP%(C%)
            posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+50
            posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-50
            SP%(C%)=5 :SP%(C%-1)=x%
            sprite_x_position x%,posSPx%
            sprite_x_position 5,posSP5%
            Caption 3,""
        Else
            IF SP%(C%-2)=5 and SP%(C%-1)>5
              Caption 3,"Déplacement impossible"
            Else
              x%=SP%(C%)
              posSP5% =sprite_x_position(5)  :posSP5% = posSP5%+100
              posSPx% =sprite_x_position(x%) :posSPx% = posSPx%-100
              SP%(C%)=5 :SP%(C%-2)=x%
              sprite_x_position x%,posSPx%
              sprite_x_position 5,posSP5%
              Caption 3,""
            End_if
        End_if
      End_if
      Else
        Caption 3,"Déplacement impossible"
      End_if
  End_Sub
 
  Sub Verif_Victory()
      dim_local x%,V%,score$
      V%=0
      if SP%(5)=5
        for x%=1 to 4 : if SP%(x%)<>x%+5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
        for x%=6 to 9 : if SP%(x%)<>x%-5 :V%=0 :Exit_for:else:V%=V%+1:end_if:next x%
      else
        for x%=1 to 9
          if SP%(x%)<5
              if SP%(x%+1)=5 or SP%(x%+2)=5 :V%=0:exit_for:else:V%=1:end_if
          else
              if SP%(x%)>5
                if SP%(x%-1)=5
                    V%=0:exit_for
                else
                    if x%>1
                    if SP%(x%-2)=5
                      V%=0:exit_for
                    else
                      V%=1
                    end_if
                    end_if
                end_if
              end_if
          end_if
        next x%
      end_if

     
      if V%=8
        if mode%=2
            score$=str$(val(text$(107))+1)
            text 107,string$(5-len(score$)," ")+score$
            if Sens%=1 :Sens%=2:else:Sens%=1:end_if
            Init_SpritePosition(Sens%)
        else
            Message "BRAVO !!! VOUS ETES UN CHAMPION !!!"
            Init_SpritePosition(1)
        end_if
      else
        if V%=1
            if mode%=1
              if message_warning_yes_no("Vous êtes bloqué !!!"+chr$(13)+"Voulez vous recommencer la partie ?")=1
                  Init_SpritePosition(1)
              else
                  gosub close
                  gosub Quitter
              end_if
            else
              if message_warning_yes_no("Vous êtes bloqué !!!"+chr$(13)+"Vous avez fait "+text$(107)+"Croisement(s)"+chr$(13)+"Voulez vous recommencer la partie ?")=1
                  Init_SpritePosition(1)
              else
                  gosub close
                  gosub Quitter
              end_if
            end_if
        end_if
      end_if
  end_sub
 
  Quitter:
      dll_off
      terminate
 
'  -INCLUDES

  #include "KGF_SUB.bas"
  #include "OBJ_SUB.bas"

Dans 5 minutes le dossier complet sera sur mon webdav au rayon
"Sources\Jeux\Jeu_du_saute_mouton.zip"

...et je ferme la boutique pour cette nuit !!!
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Saute-mouton   

Revenir en haut Aller en bas
 
Saute-mouton
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Saute-mouton
» [NUKE] Camera Mapping qui flick ou saute
» Pixellisation de l'image, son qui saute
» Vidéo youtube saute si je surf
» images TV tv qui saccades, image qui saute

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: