Le plus éloigné d'un certain nombre de point

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Le plus éloigné d'un certain nombre de point

Message par Thyphoon »

Pour mon jeu j'essaye de simuler la fuite ! (lollll non pas la fuite d'eau.... mais la fuite devant le danger)
J'ai un certain nombre de point qui sont les mechants définit part peur coordonée X, et Y. Ce sont les dangers (on peut dire des mechants)

Et j'ai un autre point (on peut dire le gentil) qui veut s'eloigner un maximum des mechants.

Exemple 1:si les mechants sont en cercle et lui est au milieu alors il se dirige vers le centre.

Exemple 2:Si tout les mechants sont a gauche et que lui est a leur droite , il continue d'avancer a droite...
etc..

Bref j'avais eu l'idée d'additionner les vecteurs entre chaque mechant et le gentil. Pensant que La resultante de ce vecteur me donnera la direction vers ou je dois me dirigier mais mais bon ça ne marche pas terrible

quelqu'un aurait une idée?
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Suivant comme tu as implémenté ton jeu, tu peux utiliser un dérivé du min-max :
- Tu testes le déplacement dans toutes les directions, et à chaque "scène" qui en résulte, tu attribues une note correspondant à la somme des distances qui le sépare des ennemis.
- Tu choisis la solution qui a la meilleure note.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

mmmmm oui tres bonne idée ..vraiment une tres bonne idée lollllll
je vais tester ça :P
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Ton idée était la bonne :)
ça marche tres bien voici un prog vite fait pour simuler la fuite.
Imaginons un lapin dans un champs avec plein de chasseur (Gniark ! Gniark !)

Le lapin c'est le point Rouge ! Les chasseurs les point Vert, et le point Bleu le chasseur selectioné

Les commandes :

[Espace] Le lapin avance d'une case
[Clic Droit] tu retire un obstacle
[Clic Gauche] tu rajoute un obstacle
[TAB] on change de chasseur
[UP] fait monter le chasseur selectionné
[DOWN] fait descendre le chasseur selectionné
[LEFT] le Chasseur va a gauche
[RIGHT] le chasseur va a droite
[ESC] pour Quitter !!

Code : Tout sélectionner

InitSprite()
InitMouse()
InitKeyboard()

#MW=20
#Taille=25

Global Dim Map(#MW,#MW)

Structure p
x.l
y.l
point.f
EndStructure

Global Dim Perso.p(10)  ;Les être vivant s
Global Dim Cases.p(4)   ;Les cases a testé au tout du lapin
Global Nbp.l            ;
Nbp=5   ; Nombre d'être vivant

;Le N°1 c'est le lapin et tout les autres les chasseurs
Perso(1)\x=#MW>>1 ; Lapin au Milieu du champ
Perso(1)\y=#MW>>1

;Je place les chasseurs
For t=2 To Nbp
  Perso(t)\x=Random(#MW-2)+1
  Perso(t)\y=Random(#MW-2)+1
Next

Pselect=2 ;Chasseur selectionné par defaut
Nbpaff=Nbp ;Nombre de perso affiché (pour faire des test avec + ou - de chasseur

;Si on arrive a ouvrir la fenêtre (sinon c'est pas la peine de continuer..:P)
If OpenWindow(0, 0, 0, 800, 600, "La Chasse au Lapin", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  OpenWindowedScreen(WindowID(0), 0, 0,800, 600, 0, 0, 0)
 
  Repeat
    
    WEvent = WaitWindowEvent() ; Un Evenement ?!
    
    If WEvent = #PB_Event_CloseWindow
      Quit = #True    
    EndIf
    
    
    ExamineMouse()
    ExamineKeyboard()
    
    ;Chouette on va faire du dessin
    StartDrawing(ScreenOutput())
    
    ;On dessine le cadrillage
    For t=0 To #MW+1
      Line(0,t*#Taille,(#MW+1)*#Taille,0,RGB(255,255,255))
      Line(t*#Taille,0,0,(#MW+1)*#Taille,RGB(255,255,255))
    Next
    
    ;On dessine les obstacle si il y en a
    For zx=0 To #MW
      For zy=0 To #MW
        If map(zx,zy)=1
          Box(zx*#Taille+1,zy*#Taille+1,#Taille-2,#Taille-2,RGB(255,255,255))
        EndIf  
      Next zy
    Next zx
    
    ;Un petit mode pour que le fond du texte sois transparent  
    DrawingMode(#PB_2DDrawing_Transparent)
    
        ;Je dessine tout les perso a l'ecran  
    For t=1 To Nbpaff;Nbp
      If t=1:col=#Red:Else:col=#Green:EndIf
      If t=Pselect:col=#Blue:EndIf
      Circle(Perso(t)\x*#Taille+#Taille>>1,Perso(t)\y*#Taille+#Taille>>1,#Taille>>1,col)
    Next
    
    ;Allez on test les cases au tour du lapin
    For pf=1 To 4
      Select pf
          Case 1 ; La case a droite
           Cases(pf)\x=Perso(1)\x+1
           Cases(pf)\y=Perso(1)\y
           Cases(pf)\point=0
          Case 2 ; La case en bas
           Cases(pf)\x=Perso(1)\x
           Cases(pf)\y=Perso(1)\y+1
           Cases(pf)\point=0
          Case 3 ; La case a gauche
           Cases(pf)\x=Perso(1)\x-1
           Cases(pf)\y=Perso(1)\y
           Cases(pf)\point=0
          Case 4 ; la case en haut
           Cases(pf)\x=Perso(1)\x
           Cases(pf)\y=Perso(1)\y-1
           Cases(pf)\point=0
        EndSelect
        
        ;Un petit test pour être sur que le lapin ne sort pas du champ ..
        If Cases(pf)\x<0 Or Cases(pf)\x>#MW Or Cases(pf)\y<0 Or Cases(pf)\y>#MW
          Cases(pf)\x=Perso(1)\x
          Cases(pf)\y=Perso(1)\y
        EndIf
        
        ;Si il n'y a pas d'obstacle alors on calcul le coef de danger 
        If  Map(Cases(pf)\x,Cases(pf)\y)=0
          ;On trace une case grise pour dire que cette case est testé
          Box(Cases(pf)\x*#Taille+1,Cases(pf)\y*#Taille+1,#Taille-2,#Taille-2,RGB(60,60,60))
          ;On trouve le gars le plus loin
         
          Vx=0 ;
          Vy=0 ;
          ;On additionne le danger que represente chaque chasseur
          For p=2 To Nbpaff; Nbp
            Vx=(Cases(pf)\x-Perso(p)\x)
            Vy=(Cases(pf)\y-Perso(p)\y)
            TV=Sqr(Vx*Vx+Vy*Vy)
            If TV<Cases(pf)\point Or Cases(pf)\point=0
              Cases(pf)\point=TV
            EndIf
          Next
          ;On affiche le coef de la case
          DrawText(Cases(pf)\x*#Taille+5,Cases(pf)\y*#Taille+5,Str(Cases(pf)\point),RGB(255,255,255))
        EndIf
    Next pf  
    

    
    ;Le lapin passe a la case suivante  
    If KeyboardPushed(#PB_Key_Space) And ElapsedMilliseconds()>waitkey
       ;On selectionne la case qui a le Coef le moins elevé
       Point=-1
       n=0
       For pf=1 To 4
         tp=Cases(pf)\point
         If tp>Point Or Point=-1
           Point=tp
           n=pf
         ElseIf tp=Point And pf=Memn ;Random(1)=1
          n=pf
         EndIf
       Next
       Memn=n
       ;si on a bien une case alors le lapin vas sur cette case
       If n>0
         Perso(1)\x=Cases(n)\x
         Perso(1)\y=Cases(n)\y
       EndIf
       waitkey= ElapsedMilliseconds()+500
     EndIf
    
    ;Pour diminuer le nombre de chasseur
    If KeyboardPushed(#PB_Key_Subtract) And ElapsedMilliseconds()>waitkey
      Nbpaff-1
      If Nbpaff<2:Nbpaff=2:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
      
    ;POur augmenter le nombre de chasseur
    If KeyboardPushed(#PB_Key_Add) And ElapsedMilliseconds()>waitkey
      Nbpaff+1
      If Nbpaff>Nbp:Nbpaff=Nbp:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
    
    ;POur selectionner le chasseur suivant 
    If KeyboardPushed(#PB_Key_Tab) And ElapsedMilliseconds()>waitkey
      Pselect+1
      If Pselect>Nbp:Pselect=2:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;Le chasseur selectioné monte
    If KeyboardPushed(#PB_Key_Up) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\y-1
      waitkey= ElapsedMilliseconds()+500
    EndIf
      
    ;Le chasseur selectionné descent
    If KeyboardPushed(#PB_Key_Down) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\y+1
      waitkey= ElapsedMilliseconds()+500
    EndIf
      
    ;Le chasseur selectionné va a gauche  
    If KeyboardPushed(#PB_Key_Left) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\x-1
      waitkey= ElapsedMilliseconds()+500
    EndIf
    
    ;Le chasseur va a droite  
    If KeyboardPushed(#PB_Key_Right) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\x+1
      waitkey= ElapsedMilliseconds()+500
    EndIf
      
    ;On efface un obstacle
    If MouseButton(#PB_MouseButton_Right)  And MouseX()<#MW*#Taille And MouseY()<#MW*#Taille
      Map(Int(MouseX()/#Taille),Int(MouseY()/#Taille))=0
    EndIf
      
    ;On rajoute un obstacle  
    If MouseButton(#PB_MouseButton_Left) And MouseX()<#MW*#Taille And MouseY()<#MW*#Taille
      Map(Int(MouseX()/#Taille),Int(MouseY()/#Taille))=1
    EndIf
    
    ;Un petit curseur pour la souris ... :P 
    Line(MouseX(),MouseY(),16,0,#Red)
    Line(MouseX(),MouseY(),0,16,#Red)
    
    ;On affiche le text
    DrawText(#MW*#Taille+#Taille,20,"[Espace] Le lapin avance d'une case",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,40,"[Clic Droit] tu retire un obstacle",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,60,"[Clic Gauche] tu rajoute un obstacle",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,80,"[TAB] on change de chasseur",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,100,"[UP] fait monter le chasseur selectionné",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,120,"[DOWN] fait descendre le chasseur selectionné",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,140,"[LEFT] le Chasseur va a gauche",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,160,"[RIGHT] le chasseur va a droite",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,180,"[ESC] pour Quitter !!",RGB(255,200,200)) 
    
    
    StopDrawing() ;On a finit de dessiner 
    FlipBuffers() ;On affiche l'image
    ClearScreen(0) ; Et on efface le buffer pour travailler sur une page toute prore :oP
    
    Delay(10);On laisse un peu de temps libre pour les autres
    
  Until Quit = #True Or KeyboardPushed(#PB_Key_Escape) 
  ;On quitte alors on fait ça bien on verme la fenêtre
  CloseWindow(0)
EndIf
Le code peut être améliorer et optimisé, mais ce n'était pas mon but premier. J'ai essayé de commenté un maximum pour que tout le monde comprenne !

Voilà ! Merci a ceux qui m'on lu et merci a ATHOW pour cette idée que j'aurais du avoir avant lui ! hi hi ! :D
Dernière modification par Thyphoon le jeu. 29/mars/2007 17:27, modifié 2 fois.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Je viens de modifier le code sur mon message au dessus ! Je n'avais pas copier le bon . Désolé :P
Donc maintenant ça marche bien ! :)

J'ai Paufiner ma technique et c'est déjà mieux...
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

constante not found "red"
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

c'est parceque tu as la version démo (encore).

ces constantes sont des constantes Win32 - donc bloqué par la version démo.

donc remplace les #Red, #Blue, ... par leur équivalent.

une composante couleur étant représentée par $BBGGRR

#Red = $0000FF
#Green = $00FF00
#Blue = $FF0000

ou avec la fonction RGB(r, g, b)


Red = RGB(255, 0, 0)
Green = RGB(0, 255, 0)
Blue = RGB(0, 0, 255)
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

Flype a écrit :c'est parceque tu as la version démo (encore).

ces constantes sont des constantes Win32 - donc bloqué par la version démo.
non, sous nunux :p
Flype a écrit :ou avec la fonction RGB(r, g, b)
#Red = RGB(255, 0, 0) marche pas

avec la valeur héxa çà marche mais çà fait planter mon PC (freeze)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

#red=255
ça devrait marché !! :)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

sous linux, ah ok.
minirop a écrit :
Flype a écrit :ou avec la fonction RGB(r, g, b)
#Red = RGB(255, 0, 0) marche pas
j'ai bien écris Red = RGB(255, 0, 0) et non pas #Red = RGB(255, 0, 0)
minirop a écrit :avec la valeur héxa çà marche mais çà fait planter mon PC (freeze)
ca par contre c'est bizarre.
_Slide_
Messages : 52
Inscription : sam. 17/mars/2007 18:04

Message par _Slide_ »

Si tu mets un chasseur juste en dessous de ton lapin, alors ton lapin se suicide et lui fonce dessus.
C'est normal ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

oui c'était le problème avec ma première version du code... mais avec la version qui est actuellement ça ne devrait pas le faire ! Tu as bien testé avec le code actuel ?
_Slide_
Messages : 52
Inscription : sam. 17/mars/2007 18:04

Message par _Slide_ »

Oui, mets un chasseur tout juste en dessous, collé donc, et presses espace pendant qq secondes.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

A oui c'est currieux ça ! lollllllll Faut que je regarde ça de plus prêt lolllllllllll
Tu as raison le lapin sent que sont heure est venu et se suicide.... lolllllllll
Bon ba je vais remettre la tête dedans alors :wink:
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Voilà c'est corrigé ! donc _Slide_ si tu trouves un autre bug n'hesite pas !!! :o)

Code : Tout sélectionner

InitSprite()
InitMouse()
InitKeyboard()

#MW=20
#Taille=25

Global Dim Map(#MW,#MW)

Structure p
x.l
y.l
point.f
EndStructure


Global Dim Perso.p(10)  ;Les être vivant s
Global Dim Cases.p(4)   ;Les cases a testé au tout du lapin
Global Nbp.l            ;
Nbp=5   ; Nombre d'être vivant

;Le N°1 c'est le lapin et tout les autres les chasseurs
Perso(1)\x=#MW>>1 ; Lapin au Milieu du champ
Perso(1)\y=#MW>>1

;Je place les chasseurs
For t=2 To Nbp
  Perso(t)\x=Random(#MW-2)+1
  Perso(t)\y=Random(#MW-2)+1
Next

Pselect=2 ;Chasseur selectionné par defaut
Nbpaff=Nbp ;Nombre de perso affiché (pour faire des test avec + ou - de chasseur

;Si on arrive a ouvrir la fenêtre (sinon c'est pas la peine de continuer..:P)
If OpenWindow(0, 0, 0, 800, 600, "La Chasse au Lapin", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  OpenWindowedScreen(WindowID(0), 0, 0,800, 600, 0, 0, 0)
 
  Repeat
   
    WEvent = WaitWindowEvent() ; Un Evenement ?!
   
    If WEvent = #PB_Event_CloseWindow
      Quit = #True   
    EndIf
   
   
    ExamineMouse()
    ExamineKeyboard()
   
    ;Chouette on va faire du dessin
    StartDrawing(ScreenOutput())
   
    ;On dessine le cadrillage
    For t=0 To #MW+1
      Line(0,t*#Taille,(#MW+1)*#Taille,0,RGB(255,255,255))
      Line(t*#Taille,0,0,(#MW+1)*#Taille,RGB(255,255,255))
    Next
   
    ;On dessine les obstacle si il y en a
    For zx=0 To #MW
      For zy=0 To #MW
        If map(zx,zy)=1
          Box(zx*#Taille+1,zy*#Taille+1,#Taille-2,#Taille-2,RGB(255,255,255))
        EndIf 
      Next zy
    Next zx
   
    ;Un petit mode pour que le fond du texte sois transparent 
    DrawingMode(#PB_2DDrawing_Transparent)
   
        ;Je dessine tout les perso a l'ecran 
    For t=1 To Nbpaff;Nbp
      If t=1:col=#Red:Else:col=#Green:EndIf
      If t=Pselect:col=#Blue:EndIf
      Circle(Perso(t)\x*#Taille+#Taille>>1,Perso(t)\y*#Taille+#Taille>>1,#Taille>>1,col)
    Next
   
    ;Allez on test les cases au tour du lapin
    For pf=1 To 4
      Select pf
          Case 1 ; La case a droite
           Cases(pf)\x=Perso(1)\x+1
           Cases(pf)\y=Perso(1)\y
           
          Case 2 ; La case en bas
           Cases(pf)\x=Perso(1)\x
           Cases(pf)\y=Perso(1)\y+1

          Case 3 ; La case a gauche
           Cases(pf)\x=Perso(1)\x-1
           Cases(pf)\y=Perso(1)\y

          Case 4 ; la case en haut
           Cases(pf)\x=Perso(1)\x
           Cases(pf)\y=Perso(1)\y-1

        EndSelect
       Cases(pf)\point=-1
        ;Un petit test pour être sur que le lapin ne sort pas du champ ..
        If Cases(pf)\x<0 Or Cases(pf)\x>#MW Or Cases(pf)\y<0 Or Cases(pf)\y>#MW
          Cases(pf)\x=Perso(1)\x
          Cases(pf)\y=Perso(1)\y
        EndIf
       
        ;Si il n'y a pas d'obstacle alors on calcul le coef de danger
        If  Map(Cases(pf)\x,Cases(pf)\y)=0
          ;On trace une case grise pour dire que cette case est testé
          Box(Cases(pf)\x*#Taille+1,Cases(pf)\y*#Taille+1,#Taille-2,#Taille-2,RGB(60,60,60))
          ;On trouve le gars le plus loin
         
          Vx=0 ;
          Vy=0 ;
          ;On trouve le le perso le plus dangereux !
          For p=2 To Nbpaff; Nbp
            Vx=(Cases(pf)\x-Perso(p)\x)
            Vy=(Cases(pf)\y-Perso(p)\y)
            TV=Sqr(Vx*Vx+Vy*Vy)
            If TV<Cases(pf)\point Or Cases(pf)\point=-1
              Cases(pf)\point=TV
            EndIf
          Next
          ;On affiche le coef de la case
          DrawText(Cases(pf)\x*#Taille+5,Cases(pf)\y*#Taille+5,Str(Cases(pf)\point),RGB(255,255,255))
        EndIf
    Next pf 
   

   
    ;Le lapin passe a la case suivante 
    If KeyboardPushed(#PB_Key_Space) And ElapsedMilliseconds()>waitkey
       ;On selectionne la case qui a le Coef le moins elevé
       Point=-1
       n=0
       For pf=1 To 4
         tp=Cases(pf)\point
         If tp>Point Or Point=-1
           Point=tp
           n=pf
         ElseIf tp=Point And pf=Memn ;Random(1)=1
          n=pf
         EndIf
       Next
       Memn=n
       ;si on a bien une case alors le lapin vas sur cette case
       If n>0
         Perso(1)\x=Cases(n)\x
         Perso(1)\y=Cases(n)\y
       EndIf
       waitkey= ElapsedMilliseconds()+500
     EndIf
   
    ;Pour diminuer le nombre de chasseur
    If KeyboardPushed(#PB_Key_Subtract) And ElapsedMilliseconds()>waitkey
      Nbpaff-1
      If Nbpaff<2:Nbpaff=2:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;POur augmenter le nombre de chasseur
    If KeyboardPushed(#PB_Key_Add) And ElapsedMilliseconds()>waitkey
      Nbpaff+1
      If Nbpaff>Nbp:Nbpaff=Nbp:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
   
    ;POur selectionner le chasseur suivant
    If KeyboardPushed(#PB_Key_Tab) And ElapsedMilliseconds()>waitkey
      Pselect+1
      If Pselect>Nbp:Pselect=2:EndIf
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;Le chasseur selectioné monte
    If KeyboardPushed(#PB_Key_Up) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\y-1
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;Le chasseur selectionné descent
    If KeyboardPushed(#PB_Key_Down) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\y+1
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;Le chasseur selectionné va a gauche 
    If KeyboardPushed(#PB_Key_Left) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\x-1
      waitkey= ElapsedMilliseconds()+500
    EndIf
   
    ;Le chasseur va a droite 
    If KeyboardPushed(#PB_Key_Right) And ElapsedMilliseconds()>waitkey
      Perso(Pselect)\x+1
      waitkey= ElapsedMilliseconds()+500
    EndIf
     
    ;On efface un obstacle
    If MouseButton(#PB_MouseButton_Right)  And MouseX()<#MW*#Taille And MouseY()<#MW*#Taille
      Map(Int(MouseX()/#Taille),Int(MouseY()/#Taille))=0
    EndIf
     
    ;On rajoute un obstacle 
    If MouseButton(#PB_MouseButton_Left) And MouseX()<#MW*#Taille And MouseY()<#MW*#Taille
      Map(Int(MouseX()/#Taille),Int(MouseY()/#Taille))=1
    EndIf
   
    ;Un petit curseur pour la souris ... :P
    Line(MouseX(),MouseY(),16,0,#Red)
    Line(MouseX(),MouseY(),0,16,#Red)
   
    ;On affiche le text
    DrawText(#MW*#Taille+#Taille,20,"[Espace] Le lapin avance d'une case",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,40,"[Clic Droit] tu retire un obstacle",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,60,"[Clic Gauche] tu rajoute un obstacle",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,80,"[TAB] on change de chasseur",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,100,"[UP] fait monter le chasseur selectionné",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,120,"[DOWN] fait descendre le chasseur selectionné",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,140,"[LEFT] le Chasseur va a gauche",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,160,"[RIGHT] le chasseur va a droite",RGB(255,200,200))
    DrawText(#MW*#Taille+#Taille,180,"[ESC] pour Quitter !!",RGB(255,200,200))
   
   
    StopDrawing() ;On a finit de dessiner
    FlipBuffers() ;On affiche l'image
    ClearScreen(0) ; Et on efface le buffer pour travailler sur une page toute prore :oP
   
    Delay(10);On laisse un peu de temps libre pour les autres
   
  Until Quit = #True Or KeyboardPushed(#PB_Key_Escape)
  ;On quitte alors on fait ça bien on verme la fenêtre
  CloseWindow(0)
EndIf
Répondre