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
» Version instantanée V 0.9.28i18 du 27/04/2018
par Jack Aujourd'hui à 8:49

» Et encore un éditeur...
par Jean Claude Aujourd'hui à 8:41

» Un CONTAINER sans bordure
par Fredisland Hier à 23:27

» windows
par Klaus Hier à 23:21

» Exécutables et Applications
par Jack Hier à 20:07

» Une suggestion pour soulager l'auteur de PANORAMIC
par Fredisland Hier à 20:05

» Le serpent qui se mange la queue avec LE DOSSIER EN COURS
par Fredisland Hier à 20:00

» Utilisation de Make_Exe
par Jack Hier à 19:50

» Comment travaille l'auteur de Panoramic
par Jack Hier à 19:43

» API Windows
par Fredisland Hier à 19:16

» Utilisation de RunDll32
par Fredisland Hier à 17:55

» pbs dessin et ecriture sur form
par Fredisland Hier à 17:34

» Panoramic et Windows
par Fredisland Hier à 14:55

» Identifiants Globaux utilisés par Windows
par Fredisland Hier à 14:05

» Nouvelle version 0.32
par Jean Claude Hier à 14:00

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
30      
CalendrierCalendrier

Partagez | 
 

 Le ptit plus du jeu panoramic plane suite...

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

avatar

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

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

Bonjour à tous,

@Fhoest,
Je viens de tester la version 6 (l'exe)

Cette fois, on est bien. Tout est fluide et la difficulté est progressive, SUPER cheers

Je n'ai pas encore regardé le code, et ce ne sera pas aujourd'hui....

En attendant, je te félicite car depuis le début de l'aventure tu as fait d'énormes progrès.

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

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Mer 11 Avr 2018 - 12:00

Finalement, je viens de prendre 1/4 d'heure sur le code.

J'ai vu 2 choses:
1) tu peux supprimer la variable "F_Width%" en changeant la partie du code ci dessous
Code:
'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(width(0)-50)

2) la variable speed% n'est pas utilisée.

J'ai joué une partie de 5 mn environ avec le casque (Musique étrange, mais sympa).
Tout à fonctionné parfaitement.

Suggestions:
1) pour le comptage des points, tu pourrais compter les ennemis qui réussisse à passer sans être abattus.
Ensuite (à la fin) tu fait un décompte pour calculer la note Razz
2) une touche pause pour que je puisse répondre au téléphone et reprendre la partie après avoir envoyé paître le vendeur de cuisines...  Razz
lol!



Bon courage pour la suite, bravo  cheers
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 11 Avr 2018 - 17:46

Salut et merci pour les compliments.

musique étrange mais sympa, oui en fait j'aime ce genre de musique et c'est assez difficile de trouver une musique de jeu qui plait à tous.

En effet j'avais mis au début de code des variables qui peuvent être enlevées tel que speed% et l'autre que tu as suggéré d'enlever.

je vais voir pour faire ces modifications, et ensuite je ferais évoluer le jeu suite à tes recommandations intéressantes.
j'ai aussi envie de donner un peu de style au compteur car une simple boite de texte n'est pas à mon gout pour cette décoration de jeu.
mais le design pour moi doit être secondaire au fonctionnement du code.
Alors tu vas la changer ta cuisine ?? lol!
bonne fin de journée ,sur ce je vais profiter un peu du rayon de soleil car je ne suis pas dans le VAR.
et ici le temps est variable comme si Panoramic avait nommer une Variable Temps et que dans le nord elle est bloquée en boucle sur "Mauvais temps" sunny
@ bientôt.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

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

Question Temps, dans le var on prépare la prochaine sécheresse.
En clair, il pleut sans discontinuer depuis hier et ça ne s’arrêtera que samedi, d'après Météo-France.
Pour le vendeur de cuisine je luis ai dit de rappeler dans 10 ans... 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...   Mer 11 Avr 2018 - 23:12

Bonsoir,
voici la version N°7 en fichier zip:
Jeu avion V7

Ajout des différentes performances de la partie comme suggéré par Jean Claude.
visible en fin de partie.
Réorganisation complète des numéros d'objet et suppression des variables inutiles du programme.
Mise en place d'un bouton de reprise après une pause téléphonique suite au démarcheur de vente de cuisine, sur l'appui de la touche P, pour pause durant la partie. reprise du jeu par le bouton reprise sur le bas à gauche.
Ce qu'il y a encore à corriger (la gestion complète du non retour avion ennemi en marche arrière et vitesse maxi des deux avions (ami et ennemi)
Chez moi toujours un bug en fin de partie qui nécessite une intervention dans le gestionnaire de tâches, malgré le "Terminate" pour la décharge des objets, et libération de la mémoire.

Bonne amusement et à bientôt pour de précieux conseils.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Jeu 12 Avr 2018 - 7:52

Salut,
Je regarde ça dans la journée.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Jeu 12 Avr 2018 - 9:26

Voici mon compte rendu:

1) les 3 variables couleurR,couleurG,couleurB ne sont pas utilisées.

2) Dans le code ci_dessous, tu verras que j'ai déplacé la création de l'ALPHA 1 en ligne 133.
La raison est que si on passe l'intro, l'ALPHA n'est pas crée et donc ça coince quand le programme arrive à la ligne 697 (caption 1 ,"": show 1).

3) tu peux te passer de la variable key% voir ligne 521 du code ci-dessous.

4) J'ai eu le plantage dont tu parles, sans bien comprendre comment j'ai fait.
Mais je pense qu'il est possible que se soit à cause d'une tentative de fermeture du programme par la croix rouge de FORM 0, mais ça ne le fait pas à tous les coups.
Pour palier à ce problème il existe la commande ON_CLOSE
Dans le code ci_dessous, j'ai déclaré le label Quit (ligne 69), j'ai ajouté cet événement on_close 0,Quit (en ligne 122). Le sous-programme Quit: est à la fin du code (ligne 738).
Avantage de ON_CLOSE, on sort sans heurt...

Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

'  gestion des couleurs par RGB
dim couleurR,couleurG,couleurB

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

'  Variables de statistiques du jeu
'  Objet Ennemy destruction ok
dim Kills%

'  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%

'  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%=3
 ' vitesse de déplacement du vaisseau "ami"
DIM vit% , multiple_vit% ,multiple_p%
vit%=5
multiple_vit%=1
multiple_p% = 1
'  -----------------------------------------------------------
Dim lettre$

'  Tableau de valeur String
dim monTexte$(3)

monTexte$(0)= " Bonjour à tous  "
monTexte$(1)= "  Bienvenue    "
monTexte$(2)= "      Sur      "
monTexte$(3)= "Panoramic Plane "

'  -----------------------------------------------------------
'  <<<<<<<<<<<<<<<<<<<<  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

 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 =====================================================================
'  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_small 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,50
font_bold 1:font_color 1,255,0,0:'  Caption 1,"Bonjour à tous"
' color 1,255,255,255

'  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 sortie du jeu
Button 71
top 71,(height(50)-40):left 71,80
caption 71,"Reprise jeu"
on_click 71,Reprise
show 71
'  **********************************************************************

End_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------
Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ennemie
sub deplacement_ennemie(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

    play 14
     pause 100
    for j%=1 to len(MonTexte$ (compteur%))
    
    lettre$=left$(Montexte$(compteur%),j%)

       TOP 1 ,300 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)/2)  -(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

              

END_SUB

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

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


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

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

 Animation:
 
  ON_KEY_DOWN 0,move
  deplacement_ennemie(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

          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%=1*(multiple_p%)
      sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
      multiple_vit%=multiple_vit% +1
      multiple_p%= multiple_p% +1


      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%=(-1)*(multiple_p%)
      sprite_show 1:sprite_hide 2:sprite_hide 5 :sprite_hide 6
      multiple_vit%=multiple_vit% -1
      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
          
          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% +40) and M_left% >(E_left% -40)

                 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
          
          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% +40) and M_left% >(E_left% -40)

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

                 else
                 TirObliqueRate% =TirObliqueRate% +1
              end_if
              timer_on 60

  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
  timer_off 60
  hide 50
  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)= "Statistiques de la partie:"
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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While


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

  terminate

return

Quit:
  terminate
return

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


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 12 Avr 2018 - 20:48

Bonsoir,
merci pour les précisions de codes à modifier et du Quit ,je vais essayer et revenir vers toi à ce sujet car chez moi j'ai le souci trés souvent.
au sujet de la variable Key% je l'ai mis au début du développement après avoir déjà utiliser la proposition que tu me donnes,
il faut que je regarde le fil afin de voir qui m'avais donner le code de select case, car plusieurs d'entre vous m'ont aidé et je ne sais plus qui avait déjà donner ce code avec le Key_down_code
le fait est que je dois enlever les variables qui ne servent plus à rien, du au remaniement du code.
Je reviendrai vers toi, afin de poster cette nouvelle version avec tes modifications.
A bientôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Ven 13 Avr 2018 - 8:16

Bonjour Fhoest,

Pour SELECT/CASE c'est au tout début de ce post. C'est notre ami Papydall, qui te l'a suggéré.

Je reviens sur ON_CLOSE:
Quand l'utilisateur clique sur la croix rouge du FORM, le programme va exécuter le sous-programme indiqué et fermer le programme. Ce qui veut dire que tu peux te passer du bouton "Exit".
Exemple dans le code ci-dessous:
Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

'  gestion des couleurs par RGB
dim couleurR,couleurG,couleurB

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

'  Variables de statistiques du jeu
'  Objet Ennemy destruction ok
dim Kills%

'  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%

'  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%=3
 ' vitesse de déplacement du vaisseau "ami"
DIM vit% , multiple_vit% ,multiple_p%
vit%=5
multiple_vit%=1
multiple_p% = 1
'  -----------------------------------------------------------
Dim lettre$

'  Tableau de valeur String
dim monTexte$(3)

monTexte$(0)= " Bonjour à tous  "
monTexte$(1)= "  Bienvenue    "
monTexte$(2)= "      Sur      "
monTexte$(3)= "Panoramic Plane "

'  -----------------------------------------------------------
'  <<<<<<<<<<<<<<<<<<<<  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

 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
'  à modifier après vérification du code sur scene2D,
'  afin de ne pas altérer le fonctionnement


Rem =====================================================================
'  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_small 0

' sortie par la croix rouge
on_close 0,fin


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

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,50
font_bold 1:font_color 1,255,0,0:'  Caption 1,"Bonjour à tous"
' color 1,255,255,255

'  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 =====================================================================

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

End_sub

'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'  ----------------------------------------------------------------------
Rem =====================================================================
'  Creation d'un sub déplacement de l'avion ennemie
sub deplacement_ennemie(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

    play 14
    pause 100
    for j%=1 to len(MonTexte$ (compteur%))
   
    lettre$=left$(Montexte$(compteur%),j%)

      TOP 1 ,300 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)/2)  -(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

             

END_SUB

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

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


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

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

 Animation:
 
  ON_KEY_DOWN 0,move
  deplacement_ennemie(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 quit

      case 32 :' barre espace
          timer_off 60

          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%=1*(multiple_p%)
      sprite_Show 2:sprite_hide 5:sprite_hide 6 :sprite_hide 1
      multiple_vit%=multiple_vit% +1
      multiple_p%= multiple_p% +1


      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%=(-1)*(multiple_p%)
      sprite_show 1:sprite_hide 2:sprite_hide 5 :sprite_hide 6
      multiple_vit%=multiple_vit% -1
      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
         
          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% +40) and M_left% >(E_left% -40)

                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
         
          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% +40) and M_left% >(E_left% -40)

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

                else
                TirObliqueRate% =TirObliqueRate% +1
              end_if
              timer_on 60

  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 71
  timer_off 60
  hide 50
  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)= "Statistiques de la partie:"
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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While


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

  terminate

return

Quit:
  terminate
return

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

Tu vois que j'ai redirigé la touche [Echap] pour une sortie "brutale" par terminate du programme et si l'utilisateur sort par la croix rouge il a droit aux résultats. Et il n'y plus de bouton "Exit".

Tout ça, ce sont des propositions, à toi de les valider ou pas suivant ce que tu as besoin.


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...   Ven 13 Avr 2018 - 20:56

Bonjour Jean Claude ,le forum

pour ce qui est du bouton exit c'est sympa mais je souhaite le garder je changerai sa form dans le futur on y mettant un contrôle Picture ou Sprite ( je vais voir leurs événements).
une question me vient à l'esprit vu que l'on parle de cette croix de fermeture.
Y a t il possibilité de l'ôter Question

Bien sur c'est une question ou il ne faut pas se précipiter pour me répondre car je vais regarder si je trouve cette solution  et ce même si  quelqu'un d'entre vous me donne la réponse entre temps.
Pour revenir au bouton Exit , ta solution est tout de même intéressante, dans la sortie pour le code:
Car si je joue avec un Joystick , cela serait fort intéressant d'utiliser comme fin de jeu non pas un bouton,mais une touche du clavier.
Ainsi il n'y aura pas une multitude d'outils pour le jeu.

le clavier  + le joystick et la souris
Ce sont des choix à faire. drunken

A bientôt pour une nouvelle version avec la gestion maxi et ennemi sous contrôle correcte quasiment prête.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Ven 13 Avr 2018 - 21:15

Fhoest a écrit:
pour ce qui est du bouton exit c'est sympa mais je souhaite le garder je changerai sa form dans le futur on y mettant un contrôle Picture ou Sprite ( je vais voir leurs événements).
une question me vient à l'esprit vu que l'on parle de cette croix de fermeture.
Y a t il possibilité de l'ôter

Oui il y a des possibilités (par DLL), mais il y a aussi la commande BORDER_HIDE à la place de BORDER_SMALL.

Dans le cas où tu utilises cette commande, le bouton "Exit" ou une sortie par le clavier est indispensable.
Je te laisse le soins de la tester.

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

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Sam 14 Avr 2018 - 0:23

Fhoest a écrit:
une question me vient à l'esprit vu que l'on parle de cette croix de fermeture.
Y a t il possibilité de l'ôter

Je te propose de faire un petit détour par ici; tu y trouveras peut-être de quoi satisfaire ta curiosité king
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jjn4

avatar

Nombre de messages : 1743
Date d'inscription : 13/09/2009

MessageSujet: +++   Sam 14 Avr 2018 - 16:10

Ouh, oui, ça commence à devenir joli, bravo !
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
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...   Sam 14 Avr 2018 - 19:33

Bonsoir,
merci à vous trois.
Jean claude,Papydall,Jjn4
je vais regarder vos propositions et ,j'ai vite fais jeté un oeil pendant que mon épouse était dans la cabine d'essayage sur le sujet que papydall à proposer et il me semble que c'est exactement cela que je cherche.
je vais tenter ce soir d'adapter cela au code.
A+ tard.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
papydall

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Sam 14 Avr 2018 - 20:00

Citation :
j'ai vite fais jeté un oeil pendant que  ...

Question :
Quand on jette son œil, comment peut-on le récupérer ?  Wink

Bon, du calme, je sors!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Sam 14 Avr 2018 - 20:19

lol!
En fait, on ne sait pas bien où Fhoest à jeté son œil ! Very Happy
Si c'est "dans la cabine d'essayage", je comprends qu'il n'a pas trop le temps de jeter l'autre sur le code. Razz

Bon, je sors aussi !

lol!
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...   Sam 14 Avr 2018 - 21:07

affraid lol!
bande de petit pig je vous adore....

En fait mon oeil à glisser sous le rideau et Ops, comment voulez vous que je m'en sorte avec le code,pas possible de faire une analyse avec ces formes, elles sont tout de même mieux que la form de Panoramic et me maintiennent bien en forme.
Je vais cesser ces belles formules et me remettre au code.

A+ 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 : 5297
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Sam 14 Avr 2018 - 21:12

lol!
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...   Sam 14 Avr 2018 - 23:23

Bonsoir,
voici le code de la version 10
Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

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

'  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%=3
 ' 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%


'  <<<<<<<<<<<<<<<<<<<<  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



 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 =====================================================================
'  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,50
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
'  **********************************************************************

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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)/2)  -(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

              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
          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%=<5 then multiple_vit%=multiple_vit% +1
      if multiple_p%=<5 then multiple_p%= multiple_p% +1


      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
          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
          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

  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
  timer_off 60
  hide 50
  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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While


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

  terminate

return

Quit:
  terminate
return

Rem ============================================================================
'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES LABELS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
Ajout du masquage de la croix de la form avec instruction border_hide (conseillé par jean claude)
cette solution correspond meiux pour moi que la proposition de Papydall néanmoins la solution de papydall reste très intéressante pour ma culture panoramic.
ensuite ajout d'objectif de mission avec quantité de missile afin d'augmenter la difficulté du jeu
j'adapterai le texte de fin plus tard puis je proposerai une relance du jeu.
La suite à laquelle j'ai pensé est une barre d'animation en fonction des ennemis abattus.
A bientôt.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Dim 15 Avr 2018 - 9:05

Bonjour,

Version testée et approuvée. J'ai rempli la mission 24 ennemis abattus pour 26 tirs. Aucun ennemis n'est passés.
Rien à signalé dans le code, sauf un commentaire sur une commande cuisine... Very Happy

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...   Dim 15 Avr 2018 - 22:49

Bonsoir,
voici la version 11:
Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

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

'  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



 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 =====================================================================
'  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,50
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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,300 : LEFT 1,(width (0)/2)  -(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

              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

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

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
          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

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


      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
               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
           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

  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
  timer_off 60
  hide 50
  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)/2)  -(width (1)/2) -(j% * 10)

            caption 1,lettre$

            TOP 1 ,250 : LEFT 1,(width (0)/2)  -(width (1)/2) -(j% * 10)
            pause 200: display

    next j%
    compteur% =compteur% +1

  End_While


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

  terminate

return

Quit:
  terminate
return

Rem ============================================================================
'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES LABELS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
Ajout de progressbar gestion des missiles disponibles et destruction d'avion.
mon seul regret si cela pourrait être mis en place serait la gestion des couleurs des progressbars
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 : 5297
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Lun 16 Avr 2018 - 9:22

Bonjour,

J'ai testé et je n'ai pas réussi la mission.
Le vitesse de déplacement du vaisseau ami est trop lente.

Puis je me suis souvenu qu'on pouvait tirer en diagonale et là ça devient possible. Very Happy

Une remarque: on ne peut plus utiliser [Echap] pour passer les résultats.
Si tu veux que cela reste ainsi, il faut que tu places OFF_KEY_DOWN 0 au début du sous-programme fin:, pour éviter des bizarreries d'affichage des résultats.

Pour les progress_bar, je ne comprends pas bien l' utilité de celle de gauche, elle est pleine dès le départ.

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...   Lun 16 Avr 2018 - 17:54

Bonjour et merci de prendre le temps de regarder
oui ,ok pour la gestion de echap, c'est à améliorer,
afin d'augmenter la vitesse du vaisseau ami comme celle de ennemi il suffit d'appuyer sur la flèche du haut, puis bas pour diminuer cette vitesse.
La vitesse ami sera toujours inférieure pour augmenter la difficulté mais c'est possible de l'augmenter ainsi.
les progress bar ne sont pas encore top, celle de gauche est le décompte des missiles disponibles (elle est pleine au début car on à X missiles dans la réserve), ensuite elle décompte.
l'autre progress bar est à l'inverse elle compte le nombre d'avion abattu et leurs longueur dépendent des valeurs avion à détruire et missiles dispo.
C'est un test ,il faut encore améliorer la communication des valeurs des barres de progressions,puis la mise en forme hide etc... comme les bouton,
je dois également déplacer le code de fin de mission qui ne doit pas obligatoirement se trouver dans le sous programme "explosion".
A bientôt.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
Jean Claude

avatar

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

MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Lun 16 Avr 2018 - 18:25

Bonsoir Fhoest,

Je pense qu'il est temps maintenant de faire une aide qui indique les touches à utiliser et leur utilité.
Tu as plusieurs possibilité pour visualiser cette aide:
1) un simple message au début, juste avant le message pour l'intro.
ou
2) un bouton "Aide"
ou
3) une touche clavier: par exemple [A] ou [F1]

Bon courage pour la suite.

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...   Lun 16 Avr 2018 - 22:45

Oui pas une bête idée, je vais voir pour manipuler une fichier texte,et par la suite je pourrais même faire plusieurs comptes avec des résultats enregistrés sur le fichier texte. What a Face
mais chaque choses en son temps.
voici la dernière version V12:
Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

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

'  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



 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 =====================================================================
'  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

  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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://programmer-en-vb.forumactif.org/
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 3 sur 4Aller à la page : Précédent  1, 2, 3, 4  Suivant
 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: