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
» Planétarium virtuel.
par Pedro Alvarez Aujourd'hui à 17:36

» ajouter des blancs dans un TXT
par lepetitmarocain Hier à 13:00

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Mar 14 Aoû 2018 - 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Mar 14 Aoû 2018 - 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Mar 14 Aoû 2018 - 12:40

» De retour...
par Yannick Lun 13 Aoû 2018 - 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 Le ptit plus du jeu panoramic plane suite...

Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4
AuteurMessage
Jean Claude

avatar

Nombre de messages : 5574
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mar 17 Avr 2018 - 8:15

Testé et approuvé cheers

Rien à déclarer, je circule... Razz

A+

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest

avatar

Nombre de messages : 97
Age : 42
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mar 17 Avr 2018 - 20:39

Bonsoir,
j'ai ajouté une version 13 qui comporte un fichier Aide extension hlp (et oui ça fonctionne aussi,comme un fichier texte)
mais le souci que je rencontre est le suivant ,je l'ai inséré sur une form 0, pour le début aucun souci sauf la couleur rabbit .
si j'utilise la touche F1 comme tout programme qui se respecte, le souci est que le texte se remet à la suite de l'ancien qui n'est plus présent sur cette "form."
je ne sais pas comment gérer le souci , car Cls fonctionne sur une scene2d et pas un formulaire
dois je ouvrir un autre sujet ou la solution est toute prête ? (ps le code vient de l'aide de panoramic je l'ai simplement adapté à mon besoin) cheers
version 13 avec fichier aide
Merci et à bientôt.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Marc

avatar

Nombre de messages : 809
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mar 17 Avr 2018 - 22:56

Bonjour à tous !

Bravo Fhoest :  cheers
Tu progresses vite et bien !

Fhoest a écrit:
le souci est que le texte se remet à la suite de l'ancien

Tu peux insérer un PRINT_LOCATE 0,0 en ligne 108. Ainsi, tu recommenceras à écrire en haut à gauche du Form.

Bonne continuation !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest

avatar

Nombre de messages : 97
Age : 42
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mar 17 Avr 2018 - 23:01

Cool , merci marc.
j'essai ça tout de suite.
A bientôt ou bonne nuit.
Edit: impeccable ça fonctionne à merveille. cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

Nombre de messages : 5574
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mer 18 Avr 2018 - 8:31

Bonjour je regarde ça dans la journée. Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5574
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mer 18 Avr 2018 - 18:21

Je viens de tester,

L'aide, c'est pas le top. Evil or Very Mad

1) Le délai d'attente ne correspond pas forcément à la vitesse de lecture de l'utilisateur.
2) Une fois que l'utilisateur connait les règles, il n'aura pas envie de revoir l'aide à chaque fois.
3) Si on ferme par la croix rouge, le programme ne répond plus.

Je te propose plus simple, dans le code ci-dessous.

Code:


Rem ==========================================================
'  Les Variables
'  ************************************************************

'  Variables de comptage
'  Boucles
dim i%,compteur%,j%
dim a$

'  Variables de statistiques du jeu
'  Objet Ennemy destruction ok
dim Kills%,resultatmission$
resultatmission$ = "ratée"

'  Tir missile droit sans destructions
dim TirDroitRate%

'  Tir missile oblique sans destructions
dim TirObliqueRate%

'  Tir missile droit avec destructions
dim TirDroitOk%

'  Tir missile oblique avec destructions
dim TirObliqueOk%

'  Avion enemmi passé sans destruction
dim AvionEnnemyOk%

'  munition pour atteindre votre objectif
dim Totalmissile%  ,TotalTireMissile%

'  variable increntation ou décrémentation de déplacememnt objet Plane
dim x% ,y%

'  Variable de position objets
dim P_top%,P_left% ,M_top%,E_Top%,E_left%,M_left%

'  variable de memoire appuie touche


'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim p%
p%=5
 ' vitesse de déplacement du vaisseau "ami"
DIM vit% , multiple_vit% ,multiple_p%
vit%=5
multiple_vit%=1
multiple_p% = 1
'  -----------------------------------------------------------
Dim lettre$
'  Objectifs
dim NBRAVION%

dim decoupeprogbarM% ,decoupeprogbarK%
'  <<<<<<<<<<<<<<<<<<<<  Fin de déclaration variables >>>>>>>>>>>>>>>>>>>>



REM définition des LABELS
' ======================================
LABEL  Move,fin,animation,erreur,reprise,Quit

Rem =====================================================================
 ' Appel de la routine d'initialisation du jeu


 Aide()
 Init()


 ' Evènement appuie des touches de direction clavier du clavier
 ' Sont pris en compte flèche de droite,gauche,haut,bas et barre espace.
 ON_KEY_DOWN 0,move

end

Rem =====================================================================
'  ***********************************************************************
'  Initialisation de la form
'  ***********************************************************************
'  ***********************************************************************
'  Ordre des controles et fichiers

'  Numéro 1-9 Alpha et Edit
'  Numéro 10 - 20 Son
'  Numéro 1 - xx Sprite = image
'  Numéro 50 Scene2D
'  Numéro 60 Timer
'  Numéro 70 Boutons
'  à modifier après vérification du code sur scene2D,
'  afin de ne pas altérer le fonctionnement


Rem =====================================================================
Sub Aide()
hide 0
   a$=" Aide du jeu d'avion Panoramic Plane"+chr$(13)+chr$(13)
a$=a$+" Utilisation des touches du clavier pour faire avancer l'avion ami:"+chr$(13)+chr$(13)
a$=a$+"Flèche du haut   = accélération des animations vitesse avion ami et ennemi"+chr$(13)
a$=a$+"Flèche du bas    = diminution de la vitesse."+chr$(13)
a$=a$+"Flèche de droite = déplacement de l'avion ami vers la droite."+chr$(13)
a$=a$+"Flèche de gauche = déplacement de l'avion ami vers la gauche."+chr$(13)

a$=a$+"Touche du clavier pour sortir du jeu = ''Esc'' ou ''Echap''"+chr$(13)
a$=a$+"Touche du clavier pour faire une pause = P"+chr$(13)
a$=a$+"Touche du clavier pour lancement missile de face = barre espace"+chr$(13)
a$=a$+"Touche du clavier pour lancement des missiles en diagonale:"+chr$(13)
a$=a$+"W vers la gauche et X vers la droite."+chr$(13)+chr$(13)
a$=a$+" Deux boutons sont disponnibles :"+chr$(13)
a$=a$+"A gauche de l'écran = Repise du jeu après une pause (touche P)"+chr$(13)
a$=a$+"A droite de l'écran = Exit ( sortie du jeu )"+chr$(13)+chr$(13)
a$=a$+" Deux barres de progression en bas de l'écran :"+chr$(13)
a$=a$+"La barre de gauche = diminution des munitions restantes en temps réel."+chr$(13)
a$=a$+"La barre de droite = augmentation de l'animation de la barre en fonction de l'objectif à atteindre. (Nombre d'avion à détruire)"+chr$(13)
a$=a$+"Chaque partie est différentes il y a un nombre de munition et de cible générer aléatoirement."+chr$(13)+chr$(13)
a$=a$+" Sortie du jeu en cas de souci majeur Alt + F4"+chr$(13)
message a$
show 0
End_sub

'  Appel de la routine intialisation

sub Init()
'  ***********************************************************************

Rem =====================================================================
 ' Appel de la routine des sons

 Creation_des_sons()
'  ***********************************************************************

Rem =====================================================================
'  mise en forme de la Form principale N=0

'  Agrandir la forme au maximum'
full_space 0

' empêcher le redimensionnement

border_hide 0

' sortie par la croix rouge
on_close 0,Quit


'  **********************************************************************

Rem =====================================================================
'  Mise en place d'un texte d'accueil et de gestion des points merci à Jean Claude


'  **********************************************************************
Rem =====================================================================
ALPHA 1 :TOP 1 ,100 : LEFT 1,210 :font_size 1,25
font_bold 1:font_color 1,255,0,0
 ' mettre en place cette liste ici pour avoir l'objectif < 0
 ' Objectif de la mission
 while NBRAVION% < 15
 NBRAVION%= rnd(25)
 end_while
 Totalmissile% = NBRAVION% + rnd(20)

 '  Tableau de valeur String
dim monTexte$(3)

monTexte$(0)= "Bienvenue..."
monTexte$(1)= "Panoramic Plane"
monTexte$(2)= "Objectif de votre mission " + str$(NBRAVION%) + " à détruire"
monTexte$(3)= "Munition disponnible pour cette mission = " + str$(Totalmissile%)

'  -----------------------------------------------------------
 
'  Appel de la procedure accueil du jeu
if message_confirmation_yes_no ("Passer l'intro ?")=2 then annonce_jeu()


'  **********************************************************************

Rem =====================================================================
' terminer le jeu en cas d'erreur

on_error_goto erreur

'  **********************************************************************


Rem =====================================================================
'  Installation d'une scene 2 dimensions Scene2d -------------

Scene2d 50

'  Dimension de la scene2D

Full_space 50
'  ***********************************************************************

Rem =====================================================================
'  Creation d'un timer pour utiliser le label animation
timer 60
on_timer 60,animation
timer_interval 60,50
'  **********************************************************************


Rem =====================================================================
 ' Appel de la routine des sprites pour images
Creation_des_sprites()

'  **********************************************************************

Rem =====================================================================
' creation d'un bouton de sortie du jeu

Button 70
top 70,(height(50)-40):left 70,(width (0) -150)
caption 70, "Exit"
on_click 70,fin

'  **********************************************************************

Rem =====================================================================
' creation d'un bouton de reprise du jeu
Button 71
top 71,(height(50)-40):left 71,80
caption 71,"Reprise jeu"
on_click 71,Reprise
show 71

Rem =====================================================================
Progress_bar 61: '  Munition
width 61,(((width(0)/2) - width(71))-80):height 61,25
top 61,(height(50)-40):left 61, left(71) +5 + width(71)
Position 61,width (61)
decoupeprogbarM% =((width(61)/position(61))*Totalmissile%)


Progress_bar 62: '  AvionAbattu
width 62,width(61):height 62,25
top 62,(height(50)-40):left 62,(left(70)-width(62)-5)
position 62, width (62)
decoupeprogbarK% =((width(62)/position(62))*NBRAVION%)
position 62,0



'  **********************************************************************

End_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------
Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ennemi
sub deplacement_ennemi(valeur%)


          if sprite_y_position(3)< height(50)

            sprite_y_position 3, (sprite_y_position(3)+valeur%)
            sprite_y_position 9, sprite_y_position(3):E_top% = sprite_y_position(3)

          else

            sprite_y_position 3,10 :sprite_y_position 9,sprite_y_position(3)
            E_top%= sprite_y_position(3)

          end_if



end_sub
'  ----------------------------------------------------------------------

Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ami

sub deplacement(valeur%)

  if valeur% >0 and sprite_x_position (5)> (width(50)-130) then exit_sub
  if valeur% <0 and sprite_x_position (6)< 80 then exit_sub


                 x%=x%+valeur% :P_left% = sprite_x_position(5)

                 sprite_x_position 1,(250 +x%) :sprite_x_position 2,(250 +x%)
                 sprite_x_position 5,(250 +x%) :sprite_x_position 6,(250 +x%)
                 p_left%=250+x%

if scancode=0
sprite_hide 1:sprite_hide 5:sprite_hide 6
pause 1
sprite_show 2
end_if
end_sub

Rem =====================================================================
'  Creation d'un annonce d'accueil pour le jeu
Sub annonce_jeu()


compteur%=0

  While compteur% < 4
     pause 300
     play 14
     pause 300

    for j%=1 to len(MonTexte$ (compteur%))

    lettre$=left$(Montexte$(compteur%),j%)

       TOP 1 ,300 : LEFT 1,( width (0)-( 350 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)-( 350 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)
            pause 150: display

    next j%
    compteur% =compteur% +1

  End_While

   FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            pause 30
  NEXT i%
'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(width(0)-50)

end_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  **********************************************************************


Rem =====================================================================
'  Creation d'une procedure pour les images.

Sub Creation_des_sprites()

' Mise en place d'un contrôle Sprite N=2 --- debut variable  P_pour Plane ---

' Sprite avion d'attaque
Sprite 1
Sprite_File_load 1,"img/Plane_down.bmp"
Sprite_position 1,250,(height(50)-150)
sprite_hide 1

' Sprite avion d'attaque
Sprite 2
Sprite_File_load 2,"img/Plane_up.bmp"
Sprite_position 2,250,(height(50)-150)
'  Attribution des valeurs de position x et y du sprite 13 au valeurs objet sprite ancienne P pour picture'
P_top% = Sprite_Y_position (2) : P_left% = sprite_X_position (2)

' Mise en place d'un contrôle sprite N=3 E_pour Ennemy
Sprite 3
Sprite_File_load 3,"img/Ennemy.bmp" : '  E_top%  pour booum !!
Sprite_position 3,82,10
Sprite_y_position 3, 10 : Sprite_x_position 3,82 : E_top% = Sprite_y_position (3): E_left% = Sprite_x_position (3)

 ' Mise en place d'un contrôle sprite N=4 M_pour missile

Sprite 4
Sprite_File_load 4,"img/Fire_double.bmp" : '  M_top% pour Booum !!
sprite_position 4,(p_left% +10),(p_top%-25) : m_left% = sprite_x_position (4)
sprite_hide 4

' Sprite avion d'attaque
Sprite 5
Sprite_File_load 5,"img/Plane_right.bmp"
Sprite_position 5,250,(height(50)-150)
Sprite_hide 5

' Sprite avion d'attaque
Sprite 6
Sprite_File_load 6,"img/Plane_left.bmp"
Sprite_position 6,250,(height(50)-150)
Sprite_hide 6

'  mise en place effet de vitesse N=7 et N= 8
Sprite 7
Sprite_File_load 7,"img/galaxie.bmp" : '  effet gauche

Sprite 8
Sprite_File_load 8,"img/galaxie.bmp" : '  effet droite
sprite_x_position 8,(width(50) -70)

'  **********************************************************************
'  Mise en place d'un contrôle sprite explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

Sprite 10
Sprite_File_load 10,"img/Bullet_Diag2.bmp"
Sprite_hide 10

Sprite 11
Sprite_File_load 11,"img/Bullet_Diag1.bmp"
Sprite_hide 11
'  Mise en place d'un contrôle sprite explosion 1
Sprite 12
Sprite_File_load 12,"img/Explosion_2.bmp"
Sprite_hide 12

'  Mise en place d'un contrôle sprite explosion 2
Sprite 13
Sprite_File_load 13,"img/Explosion_3.bmp"
Sprite_hide 13

'  Mise en place d'un contrôle sprite explosion 3
Sprite 14
Sprite_File_load 14,"img/Explosion_4.bmp"
Sprite_hide 14

'  Mise en place d'un contrôle sprite explosion 4
Sprite 15
Sprite_File_load 15,"img/Explosion_5.bmp"
Sprite_hide 15

'  Mise en place d'un contrôle sprite explosion 5
Sprite 16
Sprite_File_load 16,"img/Explosion_6.bmp"
Sprite_hide 16

'  Mise en place d'un contrôle sprite explosion 6
Sprite 17
Sprite_File_load 17,"img/Explosion_7.bmp"
Sprite_hide 17

'  Mise en place d'un contrôle sprite explosion 7
Sprite 18
Sprite_File_load 18,"img/Explosion_8.bmp"
Sprite_hide 18

'  **********************************************************************
'  **********************************************************************

end_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------


Rem ============================================================================
'  *****************************************************************************
Sub Creation_des_sons()

'  chargement du son explosion'

sound 10
   '  chargement du son N=10
file_load 10,"son/Explosion.wav"

'  chargement des sons du jeu'

sound 11
'  chargement du son N=11 lancement du missile double
file_load 11,"son/Missile_launch.wav"

'  ***********************************************************************

'  ***********************************************************************
'  chargement musique du jeu'

sound 12
'  chargement du son N=17
file_load 12,"son/Bullet Train.mp3"
 play 12

sound 13
file_load 13,"son/SFB-rocket.mp3"

sound 14
file_load 14,"son/lettre_ecran.mp3"
end_sub

Rem =====================================================================
'  ***********************************************************************
SUB explosion_animation()

timer_on 60
              play 10


              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 12,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 12: pause 10: sprite_hide 12
              sprite_position 13,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 13: pause 10: sprite_hide 13
              sprite_position 14,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 14: pause 10: sprite_hide 14
              sprite_position 15 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 15: pause 10: sprite_hide 15
              sprite_position 16 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 16: pause 10: sprite_hide 16
              sprite_hide 3
              sprite_position 17,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 17: pause 10: sprite_hide 17
              sprite_show 3:pause  3 :sprite_hide 3
              sprite_position 18,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 18: pause 10: sprite_hide 18
               sprite_y_position 3,10:pause 10
              PosMin%= rnd((Width(50) -100)):if PosMin%=<80 then PosMin%=81

              sprite_x_position 3,PosMin%:sprite_x_position 9,sprite_x_position(3)
              E_left% = sprite_x_position(3):sprite_show 3:Kills%=Kills%+1

              verification_statistiques()

             position 62, (position(62) + width(62)/decoupeprogbarK% )

END_SUB

SUB verification_statistiques()
 if TotalTireMissile% => Totalmissile%

                     if kills% = nbravion%
                       resultatmission$= "accomplie"
                       gosub fin
                     end_if

                  resultatmission$= "ratée, épuisement du stock de missiles"
                  gosub fin

              end_if

               if kills% = nbravion%
                       resultatmission$= "accomplie"
                       gosub fin
               end_if

END_SUB

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------

'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES SUB  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'


Rem ======================        Les Labels          ==========================

Rem ============================================================================
'  **********************************************************************

 Animation:

  ON_KEY_DOWN 0,move
  deplacement_ennemi(p%)

 '  Vérification position avion dessus ennemi
  if sprite_y_position(2)< sprite_y_position (3)

      PosMin%= rnd((Width(50) -100)):if PosMin%=<80 then PosMin%=81
      sprite_x_position 3,PosMin%:sprite_x_position 9,sprite_x_position(3)
      sprite_y_position 3,0
      E_left% = sprite_x_position(3):sprite_show 3
      AvionEnnemyOk%=AvionEnnemyOk%+1

 end_if

 '  vérification d'un crash avion_missile
 if sprite_y_position(2)=<(E_top% +60)

        if E_left% < (P_left% +50) and E_left% >(P_left% -50)
            timer_off 60
            sprite_hide 2:sprite_hide 3:sprite_show 9:play 10
            message "Game over"
            goto fin

        end_if

  end_if

   j% =j% + 1
    '  bande d'effet de vitesse
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)


    if j%=100

    j%=0
    sprite_y_position 7,0 :sprite_y_position 8,0

    end_if



return

Rem ============================================================================
'  **********************************************************************

Move:


  select key_down_code


      case 27 :'  arrêt des boucles
            gosub fin

      case 32 :' barre espace
           timer_off 60
          TotalTireMissile% = TotalTireMissile% +1
          verification_statistiques()
          position 61, (position(61) - width(61)/decoupeprogbarM% )  :display

          play 11

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 4,(P_top%-25) :sprite_x_position 4,(P_left% +10)
              M_top% = sprite_y_position(4)
              sprite_show 4

                while M_top% > E_top%
                OFF_KEY_DOWN 0
                  M_top% = M_top% -30 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4)
                  pause 1 :display
                OFF_KEY_DOWN 0
                end_while

              sprite_hide 4

              if M_left% < (E_left% +30) and M_left% >(E_left% -30)

                 TirDroitOk% =TirDroitOk% +1
                 explosion_animation() : RETURN

              else
                 TirDroitRate% =TirDroitRate% +1
              end_if

             timer_on 60

      case 37 : '  gauche


                 '  appel du sub deplacement(valeur%)
                 vit%=(-5)*multiple_vit%
                 sprite_show 6:sprite_hide 1:sprite_hide 2:sprite_hide 5
                 deplacement(vit%):display:return




      case 38  :' haut

      p%=multiple_p%
      sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
      if multiple_vit%=<8 then multiple_vit%=multiple_vit% +1
      if multiple_p%=<8 then multiple_p%= multiple_p% +3


      case 39 : '  droite

      vit%=5*(multiple_vit%)
      sprite_show 5:sprite_hide 1:sprite_hide 2:sprite_hide 6
      deplacement(vit%):display:return


      case 40:' bas

      p%=(multiple_p%)
      sprite_show 1:sprite_hide 2:sprite_hide 5 :sprite_hide 6
      if multiple_vit%=>2 then multiple_vit%=multiple_vit% -1
      if multiple_p%=>2 then multiple_p%= multiple_p% -1

      case 80: ' Pause téléphone pour commande cuisine de JC

       timer_off 60
       off_key_down 0

     '  deplacement(p%):display:return

      case 87 : '  code de la touche W  mettre un autre missile et un autre son

              timer_off 60
             TotalTireMissile% =TotalTireMissile%+1
             verification_statistiques()
               position 61, (position(61) - width(61)/decoupeprogbarM% )  :display
          play 13

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 10,(P_top%-25) :sprite_x_position 10,(P_left% +10)
              M_top% = sprite_y_position(10)
              sprite_show 10

                while M_top% > E_top%
                  OFF_KEY_DOWN 0
                  M_top% = M_top% -20 :sprite_y_position 10,M_top% :M_left% = sprite_x_position(10)
                  sprite_x_position 10,sprite_x_position(10)-20

                  OFF_KEY_DOWN 0
                end_while


              sprite_hide 10

              if M_left% < (E_left% +50) and M_left% >(E_left% -50)

                 TirObliqueOk% =TirObliqueOk% +1
                 explosion_animation() :RETURN

              else
                 TirObliqueRate% =TirObliqueRate% +1
              end_if

             timer_on 60

      case 88:'  code de la touche X mettre un autre missile et un autre son

          timer_off 60
          TotalTireMissile%=TotalTireMissile%+1
          verification_statistiques()
           position 61, (position(61) - width(61)/decoupeprogbarM% )  :display
          play 13

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 11,(P_top%-25) :sprite_x_position 11,(P_left% +10)
              M_top% = sprite_y_position(11)

              sprite_show 11

                while M_top% > E_top%
                  OFF_KEY_DOWN  0
                  M_top% = M_top% -20 :sprite_y_position 11,M_top% :M_left% = sprite_x_position(11)
                  sprite_x_position 11,sprite_x_position(11)+20

                  OFF_KEY_DOWN 0
                end_while

              sprite_hide 11

              if M_left% < (E_left% +50) and M_left% >(E_left% -50)

                 TirObliqueOk% =TirObliqueOk% +1
                 explosion_animation() :  RETURN

                 else
                 TirObliqueRate% =TirObliqueRate% +1
              end_if
              timer_on 60
      case 112
       hide 70 : hide 71:hide 61
       timer_off 60
       off_key_down 0
       hide 50
            Aide()
       full_space 0:show 50
       show 70 : show 71:show 61
  end_select


    sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1:pause 10
  '  Mise en place de l'avion à la position demandée


 Return
Rem =====================================================================

erreur:
   error_french
  message "Erreur à la ligne "+str$(error_line)+" "+error_type$
Return

Rem ============================================================================
'  *************************Cuisine JC commandée **********************************

reprise:
   set_focus 0
   on_key_down 0,move
   timer_on 60
Return

Rem =====================================================================


Rem ============================================================================
'  ***********************************************************************

fin:

  hide 70 : hide 71:hide 61:hide 62
  timer_off 60
  hide 50
  if message_confirmation_yes_no ("Afficher les statistiques de la partie ?")=1
  caption 1 ,"": show 1

  FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            pause 30
  NEXT i%

  '  Résultat du jeu
monTexte$(0)= "Mission " + resultatmission$
monTexte$(1)= " Tir de missile de face avec destruction = " + Str$(TirDroitOk%) + " Contre "  + Str$(TirDroitRate%) +  " sans destruction..."
monTexte$(2)= " Tir de missile en diagonale avec destruction = " + Str$(TirObliqueOk%) + " Contre "  + Str$(TirObliqueRate%) +  " sans destruction..."
monTexte$(3)=" Nombre d'avion ennemi détruit = " + Str$(Kills%)+ " Contre " + str$(AvionEnnemyOk%)+ " passé sans être détruit..."

 compteur%=0

  While compteur% < 4

    play 14
     pause 150
    for j%=1 to len(MonTexte$ (compteur%))

    lettre$=left$(Montexte$(compteur%),j%)

       TOP 1 ,250 : LEFT 1,(width (0)-( 150 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)-( 150 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While

  end_if
  message "Merci d'avoir pris le temps de jouer"

  terminate

return

Quit:
  terminate
return

Rem ============================================================================
'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES LABELS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'

Bon courage.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest

avatar

Nombre de messages : 97
Age : 42
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mer 18 Avr 2018 - 20:55

Bonjour,
ah que l'expérience panoramic parle...
C'est en effet plus propre que la version que j'avais proposé (code ajouté dans le code source)
merci. king
je retourne réfléchir pour une suite dans le programme.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Fhoest

avatar

Nombre de messages : 97
Age : 42
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mer 18 Avr 2018 - 21:54

Rebonjour ou bonsoir,
version n°16 dont voici le code:
Code:
'  sujet qui traite le suivi du jeu:
'  http://panoramic.1fr1.net/t5725p75-le-ptit-plus-du-jeu-panoramic-plane-suite#70197    
'  pour la colorisation des progress_bar.
'  http://panoramic.1fr1.net/t5768-couleur-progress_bar#70162
Rem ==========================================================
'  Les Variables
'  ************************************************************

'  Variables de comptage
'  Boucles
dim i%,compteur%,j%
dim a$

'  Variables de statistiques du jeu
'  Objet Ennemy destruction ok
dim Kills%,resultatmission$
resultatmission$ = "ratée"

'  Tir missile droit sans destructions
dim TirDroitRate%

'  Tir missile oblique sans destructions
dim TirObliqueRate%

'  Tir missile droit avec destructions
dim TirDroitOk%

'  Tir missile oblique avec destructions
dim TirObliqueOk%

'  Avion enemmi passé sans destruction
dim AvionEnnemyOk%

'  munition pour atteindre votre objectif
dim Totalmissile%  ,TotalTireMissile%

'  variable increntation ou décrémentation de déplacememnt objet Plane
dim x% ,y%

'  Variable de position objets
dim P_top%,P_left% ,M_top%,E_Top%,E_left%,M_left%

'  variable de memoire appuie touche


'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim p%
p%=5
 ' vitesse de déplacement du vaisseau "ami"
DIM vit% , multiple_vit% ,multiple_p%
vit%=5
multiple_vit%=1
multiple_p% = 1
'  -----------------------------------------------------------
Dim lettre$
'  Objectifs
dim NBRAVION%

dim decoupeprogbarM% ,decoupeprogbarK%
'  <<<<<<<<<<<<<<<<<<<<  Fin de déclaration variables >>>>>>>>>>>>>>>>>>>>



REM définition des LABELS
' ======================================
LABEL  Move,fin,animation,erreur,reprise,Quit

Rem =====================================================================
 ' Appel de la routine d'initialisation du jeu


 Aide()
 Init()


 ' Evènement appuie des touches de direction clavier du clavier
 ' Sont pris en compte flèche de droite,gauche,haut,bas et barre espace.
 ON_KEY_DOWN 0,move

end

Rem =====================================================================
'  ***********************************************************************
'  Initialisation de la form
'  ***********************************************************************
'  ***********************************************************************
'  Ordre des controles et fichiers

'  Numéro 1-9 Alpha et Edit
'  Numéro 10 - 20 Son
'  Numéro 1 - xx Sprite = image
'  Numéro 50 Scene2D
'  Numéro 60 Timer
'  Numéro 70 Boutons
'  à modifier après vérification du code sur scene2D,
'  afin de ne pas altérer le fonctionnement


Rem =====================================================================
'  code de silverman
'  http://panoramic.1fr1.net/t4977-couleur-d-un-progress_bar
sub COLOR_PROGRESS_BAR(nb%,r%,g%,b%)
 dim_local i,j,k%,my_library$,my_dll$,found%
 ' verifie si "user32" existe:
 my_dll$="user32"
   '
   i=0
   k%=0
   found%=0
   my_dll$=lower$(my_dll$)
   j=instr(my_dll$,".") : if j>0 then my_dll$=left$(my_dll$,j-1)
   '
   repeat
      k%=k%+1
   until library$(k%)="_"

   repeat
      i=i+1
         my_library$=lower$(library$(i))
         j=instr(my_library$,".") : if j>0 then my_library$=left$(my_library$,j-1)
         '
         if my_library$=my_dll$
            found%=1
            exit_repeat
         end_if
   until i=32
   '
   ' charge la librairie et cré la commande si nécessaire
   if found%=0
      library k%,my_dll$
'      print k%," : not found ",library$(k%)   :' debug
      command "pb_color","SendMessageA",k%,"IIII","stdcall"
   else
'      print i," : found ",library$(i)   :' debug
   end_if
   '
   ' colore la progress_bar
   pb_color handle(nb%),1033,0,(b%*65536)+(g%*256)+r%
end_sub

Sub Aide():'   code aide fourni par JC (merci pour son aide)
hide 0
   a$=" Aide du jeu d'avion Panoramic Plane"+chr$(13)+chr$(13)
a$=a$+" Utilisation des touches du clavier pour faire avancer l'avion ami:"+chr$(13)+chr$(13)
a$=a$+"Flèche du haut   = accélération des animations vitesse avion ami et ennemi"+chr$(13)
a$=a$+"Flèche du bas    = diminution de la vitesse."+chr$(13)
a$=a$+"Flèche de droite = déplacement de l'avion ami vers la droite."+chr$(13)
a$=a$+"Flèche de gauche = déplacement de l'avion ami vers la gauche."+chr$(13)

a$=a$+"Touche du clavier pour sortir du jeu = ''Esc'' ou ''Echap''"+chr$(13)
a$=a$+"Touche du clavier pour faire une pause = P"+chr$(13)
a$=a$+"Touche du clavier pour lancement missile de face = barre espace"+chr$(13)
a$=a$+"Touche du clavier pour lancement des missiles en diagonale:"+chr$(13)
a$=a$+"W vers la gauche et X vers la droite."+chr$(13)+chr$(13)
a$=a$+" Deux boutons sont disponnibles :"+chr$(13)
a$=a$+"A gauche de l'écran = Repise du jeu après une pause (touche P)"+chr$(13)
a$=a$+"A droite de l'écran = Exit ( sortie du jeu )"+chr$(13)+chr$(13)
a$=a$+" Deux barres de progression en bas de l'écran :"+chr$(13)
a$=a$+"La barre de gauche = diminution des munitions restantes en temps réel."+chr$(13)
a$=a$+"La barre de droite = augmentation de l'animation de la barre en fonction de l'objectif à atteindre. (Nombre d'avion à détruire)"+chr$(13)
a$=a$+"Chaque partie est différentes il y a un nombre de munition et de cible générer aléatoirement."+chr$(13)+chr$(13)
a$=a$+" Sortie du jeu en cas de souci majeur Alt + F4"+chr$(13)
message a$
show 0
End_sub

'  Appel de la routine intialisation

sub Init()
'  ***********************************************************************

Rem =====================================================================
 ' Appel de la routine des sons

 Creation_des_sons()
'  ***********************************************************************

Rem =====================================================================
'  mise en forme de la Form principale N=0

'  Agrandir la forme au maximum'
full_space 0

' empêcher le redimensionnement

border_hide 0

' sortie par la croix rouge
on_close 0,Quit


'  **********************************************************************

Rem =====================================================================
'  Mise en place d'un texte d'accueil et de gestion des points merci à Jean Claude


'  **********************************************************************
Rem =====================================================================
ALPHA 1 :TOP 1 ,100 : LEFT 1,210 :font_size 1,25
font_bold 1:font_color 1,255,0,0
 ' mettre en place cette liste ici pour avoir l'objectif < 0
 ' Objectif de la mission
 while NBRAVION% < 15
 NBRAVION%= rnd(25)
 end_while
 Totalmissile% = NBRAVION% + rnd(20)

 '  Tableau de valeur String
dim monTexte$(3)

monTexte$(0)= "Bienvenue..."
monTexte$(1)= "Panoramic Plane"
monTexte$(2)= "Objectif de votre mission " + str$(NBRAVION%) + " à détruire"
monTexte$(3)= "Munition disponnible pour cette mission = " + str$(Totalmissile%)

'  -----------------------------------------------------------
 
'  Appel de la procedure accueil du jeu
if message_confirmation_yes_no ("Passer l'intro ?")=2 then annonce_jeu()


'  **********************************************************************

Rem =====================================================================
' terminer le jeu en cas d'erreur

on_error_goto erreur

'  **********************************************************************


Rem =====================================================================
'  Installation d'une scene 2 dimensions Scene2d -------------

Scene2d 50

'  Dimension de la scene2D

Full_space 50
'  ***********************************************************************

Rem =====================================================================
'  Creation d'un timer pour utiliser le label animation
timer 60
on_timer 60,animation
timer_interval 60,50
'  **********************************************************************


Rem =====================================================================
 ' Appel de la routine des sprites pour images
Creation_des_sprites()

'  **********************************************************************

Rem =====================================================================
' creation d'un bouton de sortie du jeu

Button 70
top 70,(height(50)-40):left 70,(width (0) -150)
caption 70, "Exit"
on_click 70,fin

'  **********************************************************************

Rem =====================================================================
' creation d'un bouton de reprise du jeu
Button 71
top 71,(height(50)-40):left 71,80
caption 71,"Reprise jeu"
on_click 71,Reprise
show 71

Rem =====================================================================
Progress_bar 61: '  Munition
width 61,(((width(0)/2) - width(71))-80):height 61,25
top 61,(height(50)-40):left 61, left(71) +5 + width(71)
Position 61,width (61)
decoupeprogbarM% =((width(61)/position(61))*Totalmissile%)
color_progress_bar(61,255,0,255)

Progress_bar 62: '  AvionAbattu
width 62,width(61):height 62,25
top 62,(height(50)-40):left 62,(left(70)-width(62)-5)
position 62, width (62)
decoupeprogbarK% =((width(62)/position(62))*NBRAVION%)
position 62,0
color_progress_bar(62,255,0,0)


'  **********************************************************************

End_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------
Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ennemi
sub deplacement_ennemi(valeur%)


          if sprite_y_position(3)< height(50)

            sprite_y_position 3, (sprite_y_position(3)+valeur%)
            sprite_y_position 9, sprite_y_position(3):E_top% = sprite_y_position(3)

          else

            sprite_y_position 3,10 :sprite_y_position 9,sprite_y_position(3)
            E_top%= sprite_y_position(3)

          end_if



end_sub
'  ----------------------------------------------------------------------

Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ami

sub deplacement(valeur%)

  if valeur% >0 and sprite_x_position (5)> (width(50)-130) then exit_sub
  if valeur% <0 and sprite_x_position (6)< 80 then exit_sub


                 x%=x%+valeur% :P_left% = sprite_x_position(5)

                 sprite_x_position 1,(250 +x%) :sprite_x_position 2,(250 +x%)
                 sprite_x_position 5,(250 +x%) :sprite_x_position 6,(250 +x%)
                 p_left%=250+x%

if scancode=0
sprite_hide 1:sprite_hide 5:sprite_hide 6
pause 1
sprite_show 2
end_if
end_sub

Rem =====================================================================
'  Creation d'un annonce d'accueil pour le jeu
Sub annonce_jeu()


compteur%=0

  While compteur% < 4
     pause 300
     play 14
     pause 300

    for j%=1 to len(MonTexte$ (compteur%))

    lettre$=left$(Montexte$(compteur%),j%)

       TOP 1 ,300 : LEFT 1,( width (0)-( 350 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)-( 350 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)
            pause 150: display

    next j%
    compteur% =compteur% +1

  End_While

   FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            pause 30
  NEXT i%
'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(width(0)-50)

end_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  **********************************************************************


Rem =====================================================================
'  Creation d'une procedure pour les images.

Sub Creation_des_sprites()

' Mise en place d'un contrôle Sprite N=2 --- debut variable  P_pour Plane ---

' Sprite avion d'attaque
Sprite 1
Sprite_File_load 1,"img/Plane_down.bmp"
Sprite_position 1,250,(height(50)-150)
sprite_hide 1

' Sprite avion d'attaque
Sprite 2
Sprite_File_load 2,"img/Plane_up.bmp"
Sprite_position 2,250,(height(50)-150)
'  Attribution des valeurs de position x et y du sprite 13 au valeurs objet sprite ancienne P pour picture'
P_top% = Sprite_Y_position (2) : P_left% = sprite_X_position (2)

' Mise en place d'un contrôle sprite N=3 E_pour Ennemy
Sprite 3
Sprite_File_load 3,"img/Ennemy.bmp" : '  E_top%  pour booum !!
Sprite_position 3,82,10
Sprite_y_position 3, 10 : Sprite_x_position 3,82 : E_top% = Sprite_y_position (3): E_left% = Sprite_x_position (3)

 ' Mise en place d'un contrôle sprite N=4 M_pour missile

Sprite 4
Sprite_File_load 4,"img/Fire_double.bmp" : '  M_top% pour Booum !!
sprite_position 4,(p_left% +10),(p_top%-25) : m_left% = sprite_x_position (4)
sprite_hide 4

' Sprite avion d'attaque
Sprite 5
Sprite_File_load 5,"img/Plane_right.bmp"
Sprite_position 5,250,(height(50)-150)
Sprite_hide 5

' Sprite avion d'attaque
Sprite 6
Sprite_File_load 6,"img/Plane_left.bmp"
Sprite_position 6,250,(height(50)-150)
Sprite_hide 6

'  mise en place effet de vitesse N=7 et N= 8
Sprite 7
Sprite_File_load 7,"img/galaxie.bmp" : '  effet gauche

Sprite 8
Sprite_File_load 8,"img/galaxie.bmp" : '  effet droite
sprite_x_position 8,(width(50) -70)

'  **********************************************************************
'  Mise en place d'un contrôle sprite explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

Sprite 10
Sprite_File_load 10,"img/Bullet_Diag2.bmp"
Sprite_hide 10

Sprite 11
Sprite_File_load 11,"img/Bullet_Diag1.bmp"
Sprite_hide 11
'  Mise en place d'un contrôle sprite explosion 1
Sprite 12
Sprite_File_load 12,"img/Explosion_2.bmp"
Sprite_hide 12

'  Mise en place d'un contrôle sprite explosion 2
Sprite 13
Sprite_File_load 13,"img/Explosion_3.bmp"
Sprite_hide 13

'  Mise en place d'un contrôle sprite explosion 3
Sprite 14
Sprite_File_load 14,"img/Explosion_4.bmp"
Sprite_hide 14

'  Mise en place d'un contrôle sprite explosion 4
Sprite 15
Sprite_File_load 15,"img/Explosion_5.bmp"
Sprite_hide 15

'  Mise en place d'un contrôle sprite explosion 5
Sprite 16
Sprite_File_load 16,"img/Explosion_6.bmp"
Sprite_hide 16

'  Mise en place d'un contrôle sprite explosion 6
Sprite 17
Sprite_File_load 17,"img/Explosion_7.bmp"
Sprite_hide 17

'  Mise en place d'un contrôle sprite explosion 7
Sprite 18
Sprite_File_load 18,"img/Explosion_8.bmp"
Sprite_hide 18

'  **********************************************************************
'  **********************************************************************

end_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------


Rem ============================================================================
'  *****************************************************************************
Sub Creation_des_sons()

'  chargement du son explosion'

sound 10
   '  chargement du son N=10
file_load 10,"son/Explosion.wav"

'  chargement des sons du jeu'

sound 11
'  chargement du son N=11 lancement du missile double
file_load 11,"son/Missile_launch.wav"

'  ***********************************************************************

'  ***********************************************************************
'  chargement musique du jeu'

sound 12
'  chargement du son N=17
file_load 12,"son/Bullet Train.mp3"
 play 12

sound 13
file_load 13,"son/SFB-rocket.mp3"

sound 14
file_load 14,"son/lettre_ecran.mp3"
end_sub

Rem =====================================================================
'  ***********************************************************************
SUB explosion_animation()

timer_on 60
              play 10


              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 12,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 12: pause 10: sprite_hide 12
              sprite_position 13,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 13: pause 10: sprite_hide 13
              sprite_position 14,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 14: pause 10: sprite_hide 14
              sprite_position 15 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 15: pause 10: sprite_hide 15
              sprite_position 16 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 16: pause 10: sprite_hide 16
              sprite_hide 3
              sprite_position 17,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 17: pause 10: sprite_hide 17
              sprite_show 3:pause  3 :sprite_hide 3
              sprite_position 18,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 18: pause 10: sprite_hide 18
               sprite_y_position 3,10:pause 10
              PosMin%= rnd((Width(50) -100)):if PosMin%=<80 then PosMin%=81

              sprite_x_position 3,PosMin%:sprite_x_position 9,sprite_x_position(3)
              E_left% = sprite_x_position(3):sprite_show 3:Kills%=Kills%+1

              verification_statistiques()

             position 62, (position(62) + width(62)/decoupeprogbarK% )

END_SUB

SUB verification_statistiques()
 if TotalTireMissile% => Totalmissile%

                     if kills% = nbravion%
                       resultatmission$= "accomplie"
                       gosub fin
                     end_if

                  resultatmission$= "ratée, épuisement du stock de missiles"
                  gosub fin

              end_if

               if kills% = nbravion%
                       resultatmission$= "accomplie"
                       gosub fin
               end_if

END_SUB

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------

'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES SUB  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'


Rem ======================        Les Labels          ==========================

Rem ============================================================================
'  **********************************************************************

 Animation:

  ON_KEY_DOWN 0,move
  deplacement_ennemi(p%)

 '  Vérification position avion dessus ennemi
  if sprite_y_position(2)< sprite_y_position (3)

      PosMin%= rnd((Width(50) -100)):if PosMin%=<80 then PosMin%=81
      sprite_x_position 3,PosMin%:sprite_x_position 9,sprite_x_position(3)
      sprite_y_position 3,0
      E_left% = sprite_x_position(3):sprite_show 3
      AvionEnnemyOk%=AvionEnnemyOk%+1

 end_if

 '  vérification d'un crash avion_missile
 if sprite_y_position(2)=<(E_top% +60)

        if E_left% < (P_left% +50) and E_left% >(P_left% -50)
            timer_off 60
            sprite_hide 2:sprite_hide 3:sprite_show 9:play 10
            message "Game over"
            goto fin

        end_if

  end_if

   j% =j% + 1
    '  bande d'effet de vitesse
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)


    if j%=100

    j%=0
    sprite_y_position 7,0 :sprite_y_position 8,0

    end_if



return

Rem ============================================================================
'  **********************************************************************

Move:


  select key_down_code


      case 27 :'  arrêt des boucles
            gosub fin

      case 32 :' barre espace
           timer_off 60
          TotalTireMissile% = TotalTireMissile% +1
          verification_statistiques()
          position 61, (position(61) - width(61)/decoupeprogbarM% )  :display

          play 11

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 4,(P_top%-25) :sprite_x_position 4,(P_left% +10)
              M_top% = sprite_y_position(4)
              sprite_show 4

                while M_top% > E_top%
                OFF_KEY_DOWN 0
                  M_top% = M_top% -30 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4)
                  pause 1 :display
                OFF_KEY_DOWN 0
                end_while

              sprite_hide 4

              if M_left% < (E_left% +30) and M_left% >(E_left% -30)

                 TirDroitOk% =TirDroitOk% +1
                 explosion_animation() : RETURN

              else
                 TirDroitRate% =TirDroitRate% +1
              end_if

             timer_on 60

      case 37 : '  gauche


                 '  appel du sub deplacement(valeur%)
                 vit%=(-5)*multiple_vit%
                 sprite_show 6:sprite_hide 1:sprite_hide 2:sprite_hide 5
                 deplacement(vit%):display:return




      case 38  :' haut

      p%=multiple_p%
      sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
      if multiple_vit%=<8 then multiple_vit%=multiple_vit% +1
      if multiple_p%=<8 then multiple_p%= multiple_p% +3


      case 39 : '  droite

      vit%=5*(multiple_vit%)
      sprite_show 5:sprite_hide 1:sprite_hide 2:sprite_hide 6
      deplacement(vit%):display:return


      case 40:' bas

      p%=(multiple_p%)
      sprite_show 1:sprite_hide 2:sprite_hide 5 :sprite_hide 6
      if multiple_vit%=>2 then multiple_vit%=multiple_vit% -1
      if multiple_p%=>2 then multiple_p%= multiple_p% -1

      case 80: ' Pause téléphone pour commande cuisine de JC

       timer_off 60
       off_key_down 0

     '  deplacement(p%):display:return

      case 87 : '  code de la touche W  mettre un autre missile et un autre son

              timer_off 60
             TotalTireMissile% =TotalTireMissile%+1
             verification_statistiques()
               position 61, (position(61) - width(61)/decoupeprogbarM% )  :display
          play 13

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 10,(P_top%-25) :sprite_x_position 10,(P_left% +10)
              M_top% = sprite_y_position(10)
              sprite_show 10

                while M_top% > E_top%
                  OFF_KEY_DOWN 0
                  M_top% = M_top% -20 :sprite_y_position 10,M_top% :M_left% = sprite_x_position(10)
                  sprite_x_position 10,sprite_x_position(10)-20

                  OFF_KEY_DOWN 0
                end_while


              sprite_hide 10

              if M_left% < (E_left% +50) and M_left% >(E_left% -50)

                 TirObliqueOk% =TirObliqueOk% +1
                 explosion_animation() :RETURN

              else
                 TirObliqueRate% =TirObliqueRate% +1
              end_if

             timer_on 60

      case 88:'  code de la touche X mettre un autre missile et un autre son

          timer_off 60
          TotalTireMissile%=TotalTireMissile%+1
          verification_statistiques()
           position 61, (position(61) - width(61)/decoupeprogbarM% )  :display
          play 13

              sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
              sprite_y_position 11,(P_top%-25) :sprite_x_position 11,(P_left% +10)
              M_top% = sprite_y_position(11)

              sprite_show 11

                while M_top% > E_top%
                  OFF_KEY_DOWN  0
                  M_top% = M_top% -20 :sprite_y_position 11,M_top% :M_left% = sprite_x_position(11)
                  sprite_x_position 11,sprite_x_position(11)+20

                  OFF_KEY_DOWN 0
                end_while

              sprite_hide 11

              if M_left% < (E_left% +50) and M_left% >(E_left% -50)

                 TirObliqueOk% =TirObliqueOk% +1
                 explosion_animation() :  RETURN

                 else
                 TirObliqueRate% =TirObliqueRate% +1
              end_if
              timer_on 60
      case 112
       hide 70 : hide 71:hide 61
       timer_off 60
       off_key_down 0
       hide 50
            Aide()
       full_space 0:show 50
       show 70 : show 71:show 61
  end_select


    sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1:pause 10
  '  Mise en place de l'avion à la position demandée


 Return
Rem =====================================================================

erreur:
   error_french
  message "Erreur à la ligne "+str$(error_line)+" "+error_type$
Return

Rem ============================================================================
'  *************************Cuisine JC commandée **********************************

reprise:
   set_focus 0
   on_key_down 0,move
   timer_on 60
Return

Rem =====================================================================


Rem ============================================================================
'  ***********************************************************************

fin:

  hide 70 : hide 71:hide 61:hide 62
  timer_off 60
  hide 50
  if message_confirmation_yes_no ("Afficher les statistiques de la partie ?")=1
  caption 1 ,"": show 1

  FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            pause 30
  NEXT i%

  '  Résultat du jeu
monTexte$(0)= "Mission " + resultatmission$
monTexte$(1)= " Tir de missile de face avec destruction = " + Str$(TirDroitOk%) + " Contre "  + Str$(TirDroitRate%) +  " sans destruction..."
monTexte$(2)= " Tir de missile en diagonale avec destruction = " + Str$(TirObliqueOk%) + " Contre "  + Str$(TirObliqueRate%) +  " sans destruction..."
monTexte$(3)=" Nombre d'avion ennemi détruit = " + Str$(Kills%)+ " Contre " + str$(AvionEnnemyOk%)+ " passé sans être détruit..."

 compteur%=0

  While compteur% < 4

    play 14
     pause 150
    for j%=1 to len(MonTexte$ (compteur%))

    lettre$=left$(Montexte$(compteur%),j%)

       TOP 1 ,250 : LEFT 1,(width (0)-( 150 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)-( 150 + len(montexte$(compteur%))))  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While

  end_if
  message "Merci d'avoir pris le temps de jouer"

  terminate

return

Quit:
  terminate
return

Rem ============================================================================
'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES LABELS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'


A bientôt et svp n'oublié surtout pas ce que j'ai cité plus haut.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

Nombre de messages : 5574
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Jeu 19 Avr 2018 - 8:21

Bravo pour cette dernière version cheers

La coloration des PROGRESS_BAR(s) est plus esthétique et permet de les différencier, merci à Silverman.

Pour l'aide:
Citation :
C'est en effet plus propre que la version que j'avais proposé (code ajouté dans le code source)

Plus propre en terme de fonctionnement, je suis d'accord, mais c'est moins esthétique que ta version couleur.
Pour le moment je n'ai top de temps, mais je vais réfléchir à une présentation.

En attendant tu peux changer le titre de la fenêtre du message en ajoutant application_title "Panoramic Plane" au début de la SUB aide.

Remarque: si tu utilises application_title avant END, toutes les fenêtre "message" seront traitées.
Mais tu peux aussi l'utiliser avant chaque message.
Cette commande n'est valable que pour les fenêtres  "message", elle ne marche pas pour les fenêtres "message_confirmation_yes_no".

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Fhoest

avatar

Nombre de messages : 97
Age : 42
Localisation : Nord
Date d'inscription : 04/01/2015

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Jeu 19 Avr 2018 - 21:00

Salut ,
oui bonne idée pour l'application title, je pense que je vais mettre le texte: "Aide Panoramic Plane" pour l'aide et pour les messages simplement "Panoramic Plane" car le fait que j'utilise une scene2d avec un border_hide il vaut mieux différencier les textes.
Very Happy
le code de silverman est sublime celu de Klauss est superbe aussi ici mais je ne l'ai pas encore mis en application, je pense également l'utiliser soit sur le jeu soit sur un autre mini projet futur.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

Nombre de messages : 5574
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Ven 20 Avr 2018 - 7:42

Bonne route ! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   

Revenir en haut Aller en bas
 
Le ptit plus du jeu panoramic plane suite...
Revenir en haut 
Page 4 sur 4Aller à la page : Précédent  1, 2, 3, 4
 Sujets similaires
-
» RESOLU works suite 2004 (word) non installé ??
» le ptit train du forez
» Bug suite à la mise à jour 10.0.45.2 du player flash résolu
» Outpost Security Suite FREE
» [Résolu] comment mettre plusieurs animationa la suite

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: