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

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Le ptit plus du jeu panoramic plane suite... - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Le ptit plus du jeu panoramic plane suite...

Aller en bas 
+4
Jean Claude
jjn4
papydall
Fhoest
8 participants
Aller à la page : Précédent  1, 2, 3, 4  Suivant
AuteurMessage
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyVen 6 Avr 2018 - 22:39

Bonsoir,Very Happy
voici la nouvelle version en scene2d,tout est dans le zip même le ".bas"
je réorganiserai les numéros et le code plus tard
Jeu
il y a deux options de plus,
les touches "w" et "x" = tir en diagonale
touche haut et bas toujours pour la gestion de vitesse de l'ennemie, puis explosion sur contact entre avion et alien.
touche espace missile double.
pour le moment les sons de missile sont identique, il ne le seront plus après.
l'animation de l'explosion est différente.
elle passe par plusieurs sprite afin de donner un effet.
Pour information les Bmp ne sont pas de moi.
A bientôt amusez vous bien.... car le code et l'amélioration du jeu n'est pas terminée. cheers
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 9:06

Bonjour Fhoest, et tous

Je viens regarder rapidement, mais j'y reviendrai dans la journée.

Le "générique" ne s'affiche pas: la raison est que tu as créer ton scene2d avant. (voir code)
D'autre part: il faudrait que tu mettes un peu d'ordre pour faciliter l'analyse du code. Par exemple faire plusieurs SUBs à la place de la SUB (Init), une pour pour le générique, une autre pour les sons, puis les objets 2D.... etc.

Code:
Rem ==========================================================

'  Variables
'  ************************************************************
'  gestion des couleurs par RGB
dim couleurR,couleurG,couleurB
'  Variables de comptage
dim i%,compteur%,j%  :'   Boucles
dim Kills% : '  Objet Ennemy destruction ok
dim x%,y% : '  variable increntation ou décrémentation de déplacememnt objet Plane
'  Variable de position objets
dim P_top%,P_left% ,M_top%,E_Top%,E_left%,M_left%,F_Width%
dim positionFormx%,positionFormy%
'  variable de memoire image
Dim memimg%
'  variable de memoire appuie touche
Dim key%
'  Variable position minimale left ennemy
Dim PosMin%
'  variable vitesse
Dim speed% :Dim p%
'  -----------------------------------------------------------
Rem ==========================================================

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

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 50 Scene2D
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 Sprite
'  à modifier après vérification du code sur scene2D, afin de ne pas altérer le fonctionnement'
Rem =====================================================================
'  ***********************************************************************
sub Init()

'  chargement des sons du jeu'
sound 6
'  chargement du son N=6 lancement du missile double
file_load 6,"son/Missile_launch.wav"
'  chargement du son explosion'
sound 10
'  chargement du son N=10
file_load 10,"son/Explosion.wav"
'  ***********************************************************************
'  chargement musique du jeu'
sound 17
'  chargement du son N=10
file_load 17,"son/PIEGE.mp3"
play 17
'  Localisation milieu écran de la form
rem positionFormx% =screen_x/8 :' en fonction de la form. division par paire
rem positionFormy% =screen_y/2
rem TOP 0,positionFormx% : LEFT 0,positionFormy%
full_space 0
'  **********************************************************************
'  Instancier la variable en fonction de la largeur de la forme
F_Width%=width (0)

'  Mise en place d'un texte d'accueil et de gestion des points merci à Jean Claude
ALPHA 1 :TOP 1 ,0 : LEFT 1,210 :font_size 1,20 : font_bold 1:Caption 1,"Bonjour à tous"
color 1,255,255,255
'  Mise en forme du formulaire acceuil.
compteur%=0
While compteur% < 4
   caption 1,monTexte$(compteur%)
   FOR i%=50 to 250 step 2
          color 0,i%,i%,i%
          TOP 1 ,i% : LEFT 1,210
          pause 30
   NEXT i%
   compteur% =compteur% +1
End_While
'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(F_width%-50)


'  **********************************************************************
'  **********************************************************************
'  Installation d'une scene 2 dimensions Scene2d -------------
Scene2d 50
'  Dimension de la scene2D
width 50,1550
height 50,850
left 50,20
top 50,20

' Mise en place d'un contrôle picture N=2 P_pour Plane
Sprite 12
Sprite_File_load 12,"img/Plane_down.bmp"
Sprite_position 12,250,(height(50)-150)
sprite_hide 12

Sprite 13
Sprite_File_load 13,"img/Plane_up.bmp"
Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)

Sprite 14
Sprite_File_load 14,"img/Plane_right.bmp"
Sprite_position 14,250,(height(50)-150)
Sprite_hide 14

Sprite 15
Sprite_File_load 15,"img/Plane_left.bmp"
Sprite_position 15,250,(height(50)-150)
Sprite_hide 14

Button 16
top 16,(height(50)-80):left 16,1500
caption 16, "Exit"
on_click 16,fin

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

' Mise en place d'un contrôle picture 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)

Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

'  **********************************************************************
'  **********************************************************************
' Mise en place d'un contrôle picture 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
'  **********************************************************************
'  **********************************************************************
'  mise en place effet de vitesse N=7 et N= 8
Sprite 7
Sprite_File_load 7,"img/galaxie.bmp" : '  effet gauche
'  width 7,70
'  height 7,(height(50)*5)

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

' terminer le jeu en cas d'erreur
 rem on_error_goto fin

timer 20
on_timer 20,animation

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

Sprite 22
Sprite_File_load 22,"img/Bullet_Diag1.bmp"
Sprite_hide 22

Sprite 23
Sprite_File_load 23,"img/Explosion_2.bmp"
Sprite_hide 23

Sprite 24
Sprite_File_load 24,"img/Explosion_3.bmp"
Sprite_hide 24

Sprite 25
Sprite_File_load 25,"img/Explosion_4.bmp"
Sprite_hide 25

Sprite 26
Sprite_File_load 26,"img/Explosion_5.bmp"
Sprite_hide 26

Sprite 27
Sprite_File_load 27,"img/Explosion_6.bmp"
Sprite_hide 27

Sprite 28
Sprite_File_load 28,"img/Explosion_7.bmp"
Sprite_hide 28

Sprite 29
Sprite_File_load 29,"img/Explosion_8.bmp"
Sprite_hide 29


End_sub


rem ============================================================================

 Animation:
 '  vérification d'un crash avion_missile
 if sprite_y_position(13)=<(E_top% +40)
 timer_off 20
  if E_left% < (P_left% +30) and E_left% >(P_left% -30)
  sprite_hide 13:sprite_hide 3:sprite_show 9:play 10
  message "Game over"
  goto fin
 end_if
 end_if
rem  on_error_goto fin
 if p%<1 then p%=10
 if p%=>80 then p%=80
  j% =j% + 5
  
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)
    if sprite_y_position(3)< height(50)
    sprite_y_position 3, (sprite_y_position(3)+p%)
    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
if j%=50
 j%=0
 sprite_y_position 7,0 :sprite_y_position 8,0
end_if
return

rem ======================        Les Labels          ==========================
rem ============================================================================

Move:

key% = key_down_code

  select key%

      case 27 :'  arrêt des boucles
      case 38 :p%=P%+10:if memimg% <> 4 then sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:memimg%=4 :' haut
      case 40 :p%=p%-10:if memimg% <> 3 then sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15:memimg%=3 :' bas

      case 39

      while sprite_x_position (14)=< (width(50)-130)
       if key_up_code=27  or key_down_code=37 or key_down_code=38 or key_down_code=40 or key_down_code=32 then exit_while
      x%=x%+10 :P_left% = sprite_x_position(14):if memimg% <> 1 then sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15:memimg%=1 :' droite
      sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%) : sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) :p_left%=250+x%
      end_while


      case 37

      while sprite_x_position(15)=> 80
      if key_up_code=27 or key_down_code=39 or key_down_code=38 or key_down_code=40 or key_down_code=32 then exit_while
      x%=x%-10 :P_left% = sprite_x_position(15):if memimg% <> 2 then sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14:memimg%=2   :' gauche
      sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) : sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%):p_left%=250+x%
      end_while

      case 32

              play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              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%
                 M_top% = M_top% -20 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4) : pause 1
              end_while
              sprite_hide 4
              if M_left% < (E_left% +30) and M_left% >(E_left% -30)
              Goto explosion_animation
              end_if
       case 87 : '  code de la touche W  mettre un autre missile et un autre son



              play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21
              while M_top% > E_top%
                 M_top% = M_top% -20 :sprite_y_position 21,M_top% :M_left% = sprite_x_position(21) : pause 1
              sprite_x_position 21,sprite_x_position(21)-20
              end_while
              sprite_hide 21
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
                 Goto explosion_animation
              end_if

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

        play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)
              sprite_show 22
              while M_top% > E_top%
                 M_top% = M_top% -20 :sprite_y_position 22,M_top% :M_left% = sprite_x_position(22) : pause 1
              sprite_x_position 22,sprite_x_position(22)+20
              end_while
              sprite_hide 22
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
               Goto explosion_animation
              end_if

  end_select

    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:pause 10
 '  Mise en place de l'avion à la position demandée


 Return
Rem =====================================================================
'  ***********************************************************************
explosion_animation:


              play 10

              sprite_hide 3:sprite_y_position 3,10:pause 10
              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_position 28,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_position 29,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 29: pause 10: sprite_hide 29

              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
              caption 1,STR$(Kills%):show 1:top 1,(height(50)-80) :left 1,(width(50)-100)
              key%=0

Return
rem ============================================================================
fin:

 message "Merci d'avoir pris le temps de jouer"
 message "Vous avez éliminé " +str$(kills%)+ " Ennemy !!!"
 terminate
return
rem ============================================================================

A+
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 13:55

Bonjour à tous,
oui Jean claude je vais faire ce que tu dis certainement durant le weekend,c'est d'ailleurs une raison pour laquelle j'ai écris plus haut que je dois encore:
Citation :
je réorganiserai les numéros et le code plus tard

Merci d'avoir regarder je ne comprenais pas pourquoi mon texte ne s'affichait plus ,et maintenant j'ai compris grâce à tes conseils.
Je voulais mettre la nouvelle version 2d avant le début de weekend afin d'obtenir des commentaires tels que tu viens de le faire
dans le but d'améliorer cette version.
Bonne journée ensoleillée. sunny (ou que ça fait du bien)
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 14:13

Te casses pas la tête pour la restructuration du code.

Je l'ai fait pour toi Very Happy . C'est cadeaux !

Grace à cette restructuration, tu peux maintenant passer le générique pour faciliter tes essais.
Il suffit de mettre en commentaire la ligne 15 du code ci_dessous.

Code:
' Panoramic Plane Foest Avril 2018

Rem ========================================================== Commentaires et suivi du chantier
'  Ordre des controles et fichiers
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 Sprite
' (REMARQUE: les sprites ont un numéro indépendant des objets Panoramic, on peut donc commencer à un)
'  Numéro 50 Scene2D
 ' Sont pris en compte flèche de droite,gauche,haut,bas et barre espace.

Rem ========================================================== MISE EN PLACE
  Variables() : ' contient les variables nécessaires
  Labels() : ' contient les label(s) nécessaires
  Objets() : ' contient les Objets nécessaires (sauf les Sprites)
  Generique(): ' générique au démarrage (optionnnel)
' Installation d'une scene 2 dimensions Scene2d (après le générique)
  Scene2d 50 : full_space 50
  LesSprites() :' Mise en place des Sprites
' Bouton QUITTER  
  Button 16 : top 16,(height(50)-80):left 16,width(50)-(width(16)+10)
  caption 16, "Exit" : on_click 16,fin
  Son() :' gestion du son
' Evènement appuie des touches de direction clavier du clavier
  ON_KEY_DOWN 0,move
' Terminer le jeu en cas d'erreur
  rem on_error_goto fin
' Timer
  timer 20 : on_timer 20,animation

Rem ========================================================== FIN DE LA MISE EN PLACE
END :' *******************************************************
rem ========================================================== LES SOUS-PROGRAMMES (label et sub)
'
Animation:
 '  vérification d'un crash avion_missile
 if sprite_y_position(13)=<(E_top% +40)
 timer_off 20
  if E_left% < (P_left% +30) and E_left% >(P_left% -30)
  sprite_hide 13:sprite_hide 3:sprite_show 9:play 10
  message "Game over"
  goto fin
 end_if
 end_if
rem  on_error_goto fin
 if p%<1 then p%=10
 if p%=>80 then p%=80
  j% =j% + 5
  
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)
    if sprite_y_position(3)< height(50)
    sprite_y_position 3, (sprite_y_position(3)+p%)
    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
if j%=50
 j%=0
 sprite_y_position 7,0 :sprite_y_position 8,0
end_if
RETURN

rem ============================================================================
Move:
  key% = key_down_code

  select key%

      case 27 :'  arrêt des boucles
      case 38 :p%=P%+10:if memimg% <> 4 then sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:memimg%=4 :' haut
      case 40 :p%=p%-10:if memimg% <> 3 then sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15:memimg%=3 :' bas

      case 39

      while sprite_x_position (14)=< (width(50)-130)
       if key_up_code=27  or key_down_code=37 or key_down_code=38 or key_down_code=40 or key_down_code=32 then exit_while
      x%=x%+10 :P_left% = sprite_x_position(14):if memimg% <> 1 then sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15:memimg%=1 :' droite
      sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%) : sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) :p_left%=250+x%
      end_while


      case 37

      while sprite_x_position(15)=> 80
      if key_up_code=27 or key_down_code=39 or key_down_code=38 or key_down_code=40 or key_down_code=32 then exit_while
      x%=x%-10 :P_left% = sprite_x_position(15):if memimg% <> 2 then sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14:memimg%=2   :' gauche
      sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) : sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%):p_left%=250+x%
      end_while

      case 32

              play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              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%
                 M_top% = M_top% -20 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4) : pause 1
              end_while
              sprite_hide 4
              if M_left% < (E_left% +30) and M_left% >(E_left% -30)
              Goto explosion_animation
              end_if
       case 87 : '  code de la touche W  mettre un autre missile et un autre son



              play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21
              while M_top% > E_top%
                 M_top% = M_top% -20 :sprite_y_position 21,M_top% :M_left% = sprite_x_position(21) : pause 1
              sprite_x_position 21,sprite_x_position(21)-20
              end_while
              sprite_hide 21
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
                 Goto explosion_animation
              end_if

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

        play 6
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12

              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)
              sprite_show 22
              while M_top% > E_top%
                 M_top% = M_top% -20 :sprite_y_position 22,M_top% :M_left% = sprite_x_position(22) : pause 1
              sprite_x_position 22,sprite_x_position(22)+20
              end_while
              sprite_hide 22
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
               Goto explosion_animation
              end_if

  end_select

    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:pause 10
 '  Mise en place de l'avion à la position demandée


 RETURN
Rem =====================================================================
'  ***********************************************************************
explosion_animation:


              play 10

              sprite_hide 3:sprite_y_position 3,10:pause 10
              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_position 28,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_position 29,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 29: pause 10: sprite_hide 29

              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
              caption 1,STR$(Kills%):show 1:top 1,(height(50)-80) :left 1,(width(50)-100)
              key%=0

RETURN

rem =============================================================================
SUB LesSprites()
'  Mise en place des sprites
   Sprite 12
   Sprite_File_load 12,"img/Plane_down.bmp"
   Sprite_position 12,250,(height(50)-150)
   sprite_hide 12
   Sprite 13
   Sprite_File_load 13,"img/Plane_up.bmp"
   Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)
   Sprite 14
   Sprite_File_load 14,"img/Plane_right.bmp"
   Sprite_position 14,250,(height(50)-150)
   Sprite_hide 14
   Sprite 15
   Sprite_File_load 15,"img/Plane_left.bmp"
   Sprite_position 15,250,(height(50)-150)
   Sprite_hide 14
' Mise en place d'un contrôle picture 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)
   Sprite 9
   Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
   sprite_position 9,82,10
   sprite_hide 9
' Mise en place d'un contrôle picture 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
'  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)

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

   Sprite 22
   Sprite_File_load 22,"img/Bullet_Diag1.bmp"
   Sprite_hide 22

   Sprite 23
   Sprite_File_load 23,"img/Explosion_2.bmp"
   Sprite_hide 23

   Sprite 24
   Sprite_File_load 24,"img/Explosion_3.bmp"
   Sprite_hide 24

   Sprite 25
   Sprite_File_load 25,"img/Explosion_4.bmp"
   Sprite_hide 25

   Sprite 26
   Sprite_File_load 26,"img/Explosion_5.bmp"
   Sprite_hide 26

   Sprite 27
   Sprite_File_load 27,"img/Explosion_6.bmp"
   Sprite_hide 27

   Sprite 28
   Sprite_File_load 28,"img/Explosion_7.bmp"
   Sprite_hide 28

   Sprite 29
   Sprite_File_load 29,"img/Explosion_8.bmp"
   Sprite_hide 29
END_SUB

rem =============================================================================
SUB Objets()
'   FORM 0
    full_space 0
'   Mise en place d'un texte d'accueil et de gestion des points merci à Jean Claude
    ALPHA 1 :TOP 1 ,0 : LEFT 1,210 :font_size 1,20 : font_bold 1:Caption 1,"Bonjour à tous"
END_SUB

rem =============================================================================
SUB Variables()
'  Variables
'  ************************************************************
'  gestion des couleurs par RGB
   dim couleurR,couleurG,couleurB
'  Variables de comptage
   dim i%,compteur%,j%  :'   Boucles
   dim Kills% : '  Objet Ennemy destruction ok
   dim x%,y% : '  variable increntation ou décrémentation de déplacememnt objet Plane
'  Variable de position objets
   dim P_top%,P_left% ,M_top%,E_Top%,E_left%,M_left%
'  Instancier la variable en fonction de la largeur de la forme
   dim F_Width% : F_Width%=width (0)
  
   dim positionFormx%,positionFormy%
'  variable de memoire image
   Dim memimg%
'  variable de memoire appuie touche
   Dim key%
'  Variable position minimale left ennemy
   Dim PosMin%
'  variable vitesse
   Dim speed% :Dim p%
'  Tableau de valeur String
   dim monTexte$(3)
   monTexte$(0)= " Bonjour à tous  "
   monTexte$(1)= "   Bienvenue    "
   monTexte$(2)= "      Sur       "
   monTexte$(3)= "Panoramic Plane "
END_SUB  

rem =============================================================================
SUB Labels()
    REM définition des LABELS
    LABEL  Move,fin,animation,explosion_animation
END_SUB

rem =============================================================================
SUB Son()
'  chargement des sons du jeu'
  sound 6
'  chargement du son N=6 lancement du missile double
  file_load 6,"son/Missile_launch.wav"
'  chargement du son explosion'
  sound 10
'  chargement du son N=10
  file_load 10,"son/Explosion.wav"
'  ***********************************************************************
'  chargement musique du jeu'
  sound 17
'  chargement du son N=10
  file_load 17,"son/PIEGE.mp3"
  play 17
END_SUB

rem =============================================================================
SUB Generique()
    color 1,255,255,255
'   Mise en forme du formulaire acceuil.
    compteur%=0
    WHILE compteur% < 4
       caption 1,monTexte$(compteur%)
       FOR i%=50 to 250 step 2
              color 0,i%,i%,i%
              TOP 1 ,i% : LEFT 1,210
              pause 30
       NEXT i%
       compteur% =compteur% +1
    END_WHILE
'   Fin de boucle masquer le texte d'accueil
    HIDE 1 :Left 1,(F_width%-50)
END_SUB

rem ============================================================================
fin:
 message "Merci d'avoir pris le temps de jouer"
 message "Vous avez éliminé " +str$(kills%)+ " Ennemy !!!"
 terminate
RETURN

rem ============================================================================



Il te reste du travail !  Razz
A+

PS: j'ai un peu changé les tailles et position de FORM 0, du Scene2D, et du bouton "exit", car mon écran est plus petit que le tien. J'ai rendu le code utilisable pour tous les écrans.
A toi d'explorer .


Dernière édition par Jean Claude le Sam 7 Avr 2018 - 14:19, édité 1 fois
Revenir en haut Aller en bas
Minibug

Minibug


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 14:15

Bonjour Fhoest !

Je vois que ça avance bien. Bravo !

Par contre je suis tombé sur une erreur dans la boucle WHILE - END_WHILE.
Je pense qui faut que tu désactive la détection des touches dès le début de ton traitement des touches.
Et tu le réactive à la fin. Sinon comme l'avait exposé Silverman, tu te retrouves avec un second traitement
Alors que le premier n'est pas terminé et 'Boum' il y a un bug Exclamation

Bon courage... drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 14:29

Exact Minibug,

@Fhoest,
il faut pour cela utiliser OFF_KEY_DOWN 0 avant la boucle et remettre en service après la boucle par ON_KEY_DOWN 0,move
Il faut que tu cherches la ou lesquelles boucles causent le bug (voir peut-être: de le faire à l'entrée du sous-programme et remise en service à la fin, plutôt qu'à chaque boucle)

A+
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 20:10

@ Jean claude,
merci pour la restauration du code,je viens quasiment de terminer la mienne et je me rend compte que tu l'as fait,
Du coups on fera un mix si il faut.
pour la gestion off et on des touches je ne l'ai pas encore fait car une petite chose me dérange hormis le bogue, c'est que je suis du coup obligé d'aller au bout et en plus je peux donc plus tirer avant d'être au bout.
je vais voir ce que je peux faire de mieux.
Cool pour le tuyau des numéros indépendant des sprites cela va me faciliter la tâche pour le reste.

@ Minibug,
oui j'avais vu pour les boucles While et End while je cherche une solution intermédiaire pour le souci que j'ai évoquer juste au dessus (réponse souligné @Jean Claude)
Encore un peu de code et je vous remet la version que j'ai modeler. normalement ce soir (après test chez moi - sans le mix pour taille écran et toutes les bonnes idées de Jean claude)
A+
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 20:51

Fohest a écrit:
c'est que je suis du coup obligé d'aller au bout et en plus je peux donc plus tirer avant d'être au bout.

scratch scratch scratch

Il faudrait que tu précises, au bout de quoi et dans quelle circonstance.

Je pense que tu devrais ralentir le SPRITE du vaisseau commandé par l'utilisateur, car avec les sprites c'est plus rapide qu'avec le PICTURE. Pour cela il faut que tu places une PAUSE (valeur à définir) dans le sous-programme de déplacement. Observer le résultat et voir si l'appuis d'une touche est encore fonctionnelle et peut stopper le vaisseau. Une fois le problème trouvé tu remets la vitesse que tu veux au vaisseau en diminuant ou en supprimant la PAUSE.

A demain.
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptySam 7 Avr 2018 - 23:06

Resoir,
voici le code toujours avec le même souci de boucle While.
j'ai essayer de mettre les Off et ON mais pas concluant.

j'ai encore quelque bogue si on joue un moment en ne respectant pas que l'avion n'aille jusqu'au bout de sa trajectoire droite ou gauche sans relancer la boucle While.

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

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

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

'  Objet Ennemy destruction ok
dim Kills%

'  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%,F_Width%
dim positionFormx%,positionFormy%

'  variable de memoire image
Dim memimg%

'  variable de memoire appuie touche
Dim key%

'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim speed% :Dim p%

'  -----------------------------------------------------------

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

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 Boutons
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 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

'  Instancier la variable en fonction de la largeur de la forme
F_Width%=width (0)

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

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

ALPHA 1 :TOP 1 ,0 : LEFT 1,210 :font_size 1,20 : font_bold 1:Caption 1,"Bonjour à tous"
color 1,255,255,255

'  **********************************************************************
Rem =====================================================================
'  Appel de la procedure accueil du jeu

annonce_jeu()

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

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

 on_error_goto move

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


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

Scene2d 50

'  Dimension de la scene2D
width 50,1550 : height 50,850 : left 50,20 : top 50,20

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

Rem =====================================================================
'  Creation d'un timer pour utiliser le label animation
timer 20
on_timer 20,animation

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

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

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

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

Button 16
top 16,(height(50)-80):left 16,1500
caption 16, "Exit"
on_click 16,fin

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

End_sub

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

Rem =====================================================================
'  Creation d'un annonce d'accueil pour le jeu

Sub annonce_jeu()

compteur%=0

  While compteur% < 4
   
    caption 1,monTexte$(compteur%)

      FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            TOP 1 ,i% : LEFT 1,210
            pause 30
      NEXT i%

    compteur% =compteur% +1

  End_While

'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(F_width%-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 12
Sprite_File_load 12,"img/Plane_down.bmp"
Sprite_position 12,250,(height(50)-150)
sprite_hide 12

' Sprite avion d'attaque
Sprite 13
Sprite_File_load 13,"img/Plane_up.bmp"
Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)

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

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

' 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 explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

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

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

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

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

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

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

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

'  **********************************************************************
' Mise en place d'un contrôle picture 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 21
Sprite_File_load 21,"img/Bullet_Diag2.bmp"
Sprite_hide 21

Sprite 22
Sprite_File_load 22,"img/Bullet_Diag1.bmp"
Sprite_hide 22


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

end_sub

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


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

'  chargement des sons du jeu'

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

'  chargement du son explosion'

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

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

sound 17
'  chargement du son N=10
file_load 17,"son/PIEGE.mp3"
play 17

end_sub

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

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


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

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

 Animation:
 
 '  Vérification position avion dessus ennemi
  if sprite_y_position(13)< 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


 end_if

 '  vérification d'un crash avion_missile


  if sprite_y_position(13)=<(E_top% +40)
   

   
          if E_left% < (P_left% +30) and E_left% >(P_left% -30)
            timer_off 20
            sprite_hide 13:sprite_hide 3:sprite_show 9:play 10
            message "Game over"
            goto fin
       
        end_if

  end_if

 on_error_goto move
 
 if p%<1 then p%=10
   
  if p%=>80 then p%=80
   
    j% =j% + 5
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)
         
          if sprite_y_position(3)< height(50)
           
            sprite_y_position 3, (sprite_y_position(3)+p%)
            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
 
    if j%=50
   
    j%=0
    sprite_y_position 7,0 :sprite_y_position 8,0

    end_if
return

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

Move:

key% = key_down_code

  select key%


      case 27 :'  arrêt des boucles

      case 32

          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              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%

                  M_top% = M_top% -20 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4)

                end_while

              sprite_hide 4

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

                Goto explosion_animation

              end_if
             
      case 37 : '  gauche

              while sprite_x_position(15)=> 80

                x%=x%-10 :P_left% = sprite_x_position(15):if memimg% <> 2 then sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14:memimg%=2  :' gauche
                sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) : sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%):p_left%=250+x%

              end_while



      case 38 :p%=P%+10:if memimg% <> 4 then sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:memimg%=4 :' haut
     
      case 39 : '  droite

              while sprite_x_position (14)=< (width(50)-130)

                x%=x%+10 :P_left% = sprite_x_position(14):if memimg% <> 1 then sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15:memimg%=1 :' droite
                sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%) : sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) :p_left%=250+x%
             
              end_while


      case 40 :p%=p%-10:if memimg% <> 3 then sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15:memimg%=3 :' bas

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

          play 6
             
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21
               
                while M_top% > E_top%

                  M_top% = M_top% -20 :sprite_y_position 21,M_top% :M_left% = sprite_x_position(21)
                  sprite_x_position 21,sprite_x_position(21)-20

                end_while

               
              sprite_hide 21
             
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
             
                Goto explosion_animation
             
              end_if

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

          play 6
             
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)
             
              sprite_show 22

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

                end_while

              sprite_hide 22
             
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)

              Goto explosion_animation

              end_if

  end_select
 

    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:pause 10
  '  Mise en place de l'avion à la position demandée


 Return

Rem =====================================================================
'  ***********************************************************************
explosion_animation:


              play 10

              sprite_hide 3:sprite_y_position 3,10:pause 10
              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_position 28,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_position 29,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 29: pause 10: sprite_hide 29

              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
              caption 1,STR$(Kills%):show 1:top 1,(height(50)-80) :left 1,(width(50)-100)
              key%=0

Return

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

fin:
  timer_off 20
  message "Merci d'avoir pris le temps de jouer"
  message "Vous avez éliminé " +str$(kills%)+ " ennemis !!!"
  terminate

return

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

A bientôt. (espérant trouver cette solution) Sleep Sleep
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 10:04

Bonjour Fhoest.

Je viens de regarder ton code.

Il y a plusieurs choses qui sont à corriger.

1) ALPHA 1 Doit être placé au début de la Sub annonce_jeu() ce qui permet de ne pas le voir si on décide de passer l'annonce

2) Tu es resté sur une taille d'écran unique:
Code:
'  Dimension de la scene2D
width 50,1550 : height 50,850 : left 50,20 : top 50,20
C'est embêtant pour jouer si on a pas la même taille, le mieux (à mon avis) c'est de te baser sur un FULL_SPACE 0 et 50, puis tu ramène le bouton exit en bas à droite.
Regarde comment j'ai fait dans le code que j'ai posté plus haut.

3) ON_ERROR_GOTO,move . C'est le genre de truc à éviter, car en cas d'erreur détectée tu relances le programme sans rien faire !?
Regarde le code ci-dessous, j'ai ajouté un label erreur et en jouant je n'ai jamais eu le message, donc il n'y a jamais eu d'erreur.

4) GOTO explosion_animation. Là aussi, quant il y a un GOTO, c'est souvent pas bon, (mais pas toujours).
Dans le code ci-dessous, j'ai transformé le sous-prgramme explosion_animation: en SUB explosion_animation() .

Pour finir, j'ai ajouté une variable pour maîtriser la vitesse du vaisseau "ami".
Son nom: vit% , tu la trouveras en ligne 34, 35, 448, 463

Voici ton code en partie retouché (sauf Dimension de la scene2D)
Code:
Rem ==========================================================
'  Les Variables
'  ************************************************************

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

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

'  Objet Ennemy destruction ok
dim Kills%

'  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%,F_Width%
dim positionFormx%,positionFormy%

'  variable de memoire image
Dim memimg%

'  variable de memoire appuie touche
Dim key%

'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim speed% :Dim p%

DIM vit% :' vitesse de déplacement du vaisseau "ami"
vit%=5
'  -----------------------------------------------------------

'  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

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 Boutons
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 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

'  Instancier la variable en fonction de la largeur de la forme
F_Width%=width (0)

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

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


'  **********************************************************************
Rem =====================================================================
'  Appel de la procedure accueil du jeu

' 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
width 50,1550 : height 50,850 : left 50,20 : top 50,20

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

Rem =====================================================================
'  Creation d'un timer pour utiliser le label animation
timer 20
on_timer 20,animation

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

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

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

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

Button 16
top 16,(height(50)-80):left 16,1500
caption 16, "Exit"
on_click 16,fin

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

End_sub

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

Rem =====================================================================
'  Creation d'un annonce d'accueil pour le jeu

Sub annonce_jeu()
ALPHA 1 :TOP 1 ,0 : LEFT 1,210 :font_size 1,20 : font_bold 1:Caption 1,"Bonjour à tous"
color 1,255,255,255

compteur%=0

  While compteur% < 4
    
    caption 1,monTexte$(compteur%)

      FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            TOP 1 ,i% : LEFT 1,210
            pause 30
      NEXT i%

    compteur% =compteur% +1

  End_While

'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(F_width%-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 12
Sprite_File_load 12,"img/Plane_down.bmp"
Sprite_position 12,250,(height(50)-150)
sprite_hide 12

' Sprite avion d'attaque
Sprite 13
Sprite_File_load 13,"img/Plane_up.bmp"
Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)

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

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

' 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 explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

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

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

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

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

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

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

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

'  **********************************************************************
' Mise en place d'un contrôle picture 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 21
Sprite_File_load 21,"img/Bullet_Diag2.bmp"
Sprite_hide 21

Sprite 22
Sprite_File_load 22,"img/Bullet_Diag1.bmp"
Sprite_hide 22


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

end_sub

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


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

'  chargement des sons du jeu'

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

'  chargement du son explosion'

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

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

sound 17
'  chargement du son N=10
file_load 17,"son/PIEGE.mp3"
play 17

end_sub

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

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


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

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

 Animation:
 
 '  Vérification position avion dessus ennemi
  if sprite_y_position(13)< 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


 end_if

 '  vérification d'un crash avion_missile


  if sprite_y_position(13)=<(E_top% +40)
    

    
          if E_left% < (P_left% +30) and E_left% >(P_left% -30)
            timer_off 20
            sprite_hide 13:sprite_hide 3:sprite_show 9:play 10
            message "Game over"
            goto fin
        
        end_if

  end_if

 on_error_goto move
              
 if p%<1 then p%=10
    
  if p%=>80 then p%=80
    
    j% =j% + 5
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)
          
          if sprite_y_position(3)< height(50)
            
            sprite_y_position 3, (sprite_y_position(3)+p%)
            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
  
    if j%=50
    
    j%=0
    sprite_y_position 7,0 :sprite_y_position 8,0

    end_if
return

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

Move:

key% = key_down_code

  select key%


      case 27 :'  arrêt des boucles
            gosub fin

      case 32

          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              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%

                  M_top% = M_top% -20 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4)

                end_while

              sprite_hide 4

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

                 explosion_animation() : RETURN

              end_if
              
      case 37 : '  gauche

              while sprite_x_position(15)=> 80

                x%=x%-vit% :P_left% = sprite_x_position(15)
                if memimg% <> 2 then sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14:memimg%=2  :' gauche
                sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%)
                sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%): p_left%=250+x%

              end_while



      case 38 :p%=P%+10:if memimg% <> 4 then sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:memimg%=4 :' haut
      
      case 39 : '  droite

              while sprite_x_position (14)=< (width(50)-130)

                x%=x%+vit% :P_left% = sprite_x_position(14):if memimg% <> 1 then sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15:memimg%=1 :' droite
                sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%) : sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%) :p_left%=250+x%
              
              end_while


      case 40 :p%=p%-10:if memimg% <> 3 then sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15:memimg%=3 :' bas

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

          play 6
              
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21
                
                while M_top% > E_top%

                  M_top% = M_top% -20 :sprite_y_position 21,M_top% :M_left% = sprite_x_position(21)
                  sprite_x_position 21,sprite_x_position(21)-20

                end_while

                
              sprite_hide 21
              
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)
              
                 explosion_animation() : RETURN
              
              end_if

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

          play 6
              
              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)
              
              sprite_show 22

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

                end_while

              sprite_hide 22
              
              if M_left% < (E_left% +40) and M_left% >(E_left% -40)

                 explosion_animation() : RETURN

              end_if

  end_select
  

    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:pause 10
  '  Mise en place de l'avion à la position demandée

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

erreur:
  message "Erreur"
Return
  
Rem =====================================================================
'  ***********************************************************************
SUB explosion_animation()


              play 10

              sprite_hide 3:sprite_y_position 3,10:pause 10
              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_position 28,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_position 29,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 29: pause 10: sprite_hide 29

              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
              caption 1,STR$(Kills%):show 1:top 1,(height(50)-80) :left 1,(width(50)-100)
              key%=0

END_SUB

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

fin:
  timer_off 20
  message "Merci d'avoir pris le temps de jouer"
  message "Vous avez éliminé " +str$(kills%)+ " ennemis !!!"
  terminate

return

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

Essaies-le et prends ce qui te parait bon.

A+
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 11:54

@Fhoest
Comme suggéré plus haut, il faut utiliser OFF_KEY_DOWN/ON_KEY_DOWN. Si ça bloque après avoir tiré, c'est parcequ'il faut utiliser ON_KEY_DOWN
dans la routine "explosion_animation", puisque tu y accède par un goto et qu'un RETURN est atteind sans que la commande ON_KEY_DOWN ai été déclenché.
Si tu peux, remplace GOTO par GOSUB. Ce n'est pas obligatoire, mais le code est plus simple à gérer.
Dans les CASE 37/39, tu peux arrèter les boucles WHILE prématurément en ajoutant "AND SCANCODE" 37/39, cela évitera que le vaisseau avance tant que la boucle n'est pas fini.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 13:36

Merci Silverman pour le coup de main.

Je vais tester ce que tu proposes, car pour le moment j'en suis resté à la restructuration du code plutôt que de rechercher la solution.
C'est ma façon de faire, traiter les problèmes les plus simples avant d'aller plus loin. Very Happy

En tous cas, c'est bon d'avoir une aide car je ne suis pas forcément de bon conseil.

A+
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 15:05

Bonjour,
merci pour les corrections et modifications du code.Very Happy  Sympa.
j'ai modifié pour le full_space j'avais effectivement oublié de supprimer la ligne top,width,etc... de la scene 2d
oui,le Gosub et le Sub c'est une bonne idée. (j'avais oublié le gosub).
j'ai parfois encore des erreurs,mais c'est vraiment aléatoire.
il faut que je change ma musique du jeu car elle casse la tête. affraid  je pense que je vais mettre un choix dans sa propre librairie avec une boite de dialogue, ça me permettra d'aller plus loin avec panoramic.
J'ai une question sur les numéros N.
Puis je utiliser le même numéros pour des contrôles différents ou bien je peux car j'utilise une scene2d et une forme (en contrôle parents ) Question
Edit je viens juste de voir la proposition de silverman car mon message que je viens de mettre était rédiger ce matin mais pas encore envoyé.
je vais étudier cette proposition dès que j'en aurais l'occasion ce soir.
Merci à vous.
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 20:26

Fhoest a écrit:
J'ai une question sur les numéros N.
Puis je utiliser le même numéros pour des contrôles différents ou bien je peux car j'utilise une scene2d et une forme (en contrôle parents )

Je ne comprend pas bien ta question, mais je vais tenter une réponse.

Un objet est désigné par un numéro (button 1) ce numéro lui est réservé et tu ne peux pas l'utiliser pour un autre objet.
SAUF si c'est pour un sprite, car les sprites ont une numérotation indépendante (à condition bien sur qu'il y ai un SCENE2D existant).
Dans le cas de notre bouton 1, tu peux reprendre son numéro pour un ALPHA par exemple. Mais attention ! si dans le code il y a des instructions pour ce bouton elles deviendront valables pour le nouvel objet. Ici c'est un ALPHA donc c'est une possibilité de changer un bouton par un alpha qui supporte les mêmes commandes.
Dans d'autre cas le mieux est de supprimer le bouton par DELETE 1. Le bouton n'existe plus et le numéro d'objet est de nouveau libre. Mais il faut revoir toutes les instructions correspondantes au numéro 1. Par exemple, si tu changes ton bouton par une DLIST  toutes commande du genre TOP, LEFT,  WIDTH,  HEIGHT déclencheront une erreur.

Si tu créer un deuxième SCENE2D sur le même FORM c'est possible mais il y a des conditions.
Code:
scene2d 10
sprite_target_is 10
sprite 11


scene2d 20 : left 20,220
sprite_target_is 20
sprite 21


Les numéros de sprite utilisés par le premier scene2d ne doivent pas être utilisés pour le deuxième.
Il faut désigner la cible (scene2d) pour créer les sprites dans leur scene2d respectif, avec la commande sprite_target_is
En tous cas, pas commande PARENT pour un sprite.

AUTRE POSSIBILITÉ: 2 FORM(s) avec chacun son scene2d
Code:
caption 0,"FORM 0"
scene2d 10
sprite_target_is 10
sprite 11

form 30 : left 30,500 : caption 30,"FORM 30"
scene2d 20 : parent 20,30
sprite_target_is 20
sprite 21


Ici, on voit que SCENE2D accepte la commande PARENT.

J'espère avoir répondu à ta question.
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 22:55

Oui Jean claude tu as bien répondu à ma question, et à vrai dire quand je me relis ,je me dis que tu as pas mal de talent pour avoir réussit à la comprendre cette question.
lol!
j'ai bien avancer sur le code ,sauf que j'ai encore quelques soucis (je vais tenter de le corriger mais avant je vais vous donner les messages erreur que je rencontre,pour vous cela sera peut être plus clair.
voici le nouveau code:
Code:

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

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

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

'  Objet Ennemy destruction ok
dim Kills%

'  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%,F_Width%
dim positionFormx%,positionFormy%

'  variable de memoire image
Dim memimg%

'  variable de memoire appuie touche
Dim key%

'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim speed% :Dim p%

 ' vitesse de déplacement du vaisseau "ami"
DIM vit% , multiple_vit%
vit%=5
multiple_vit%=1
'  -----------------------------------------------------------

'  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

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 Boutons
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 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

'  Instancier la variable en fonction de la largeur de la forme
F_Width%=width (0)

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

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


'  **********************************************************************
Rem =====================================================================
'  Appel de la procedure accueil du jeu

if message_confirmation_yes_no ("Passer l'intro ?")=0 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 20
on_timer 20,animation

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

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

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

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

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

'  **********************************************************************
Edit 2:hide 2
top 2,(height(50)-40)
left 2,(width (0) -170)
width 2,20
height 2,height (16)
show 2

End_sub

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

sub deplacement(valeur%)

  if valeur% >0 and sprite_x_position (14)> (width(50)-130) then exit_sub
  if valeur% <0 and sprite_x_position (15)< 80 then exit_sub
              '  while sprite_x_position (14)=< (width(50)-130)
                ' repeat

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

                sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%)
                sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%)
                p_left%=250+x%

if scancode=0
sprite_hide 12:sprite_hide 14:sprite_hide 15
pause 1
sprite_show 13
end_if
end_sub

Rem =====================================================================
'  Creation d'un annonce d'accueil pour le jeu

Sub annonce_jeu()

ALPHA 1 :TOP 1 ,100 : LEFT 1,210 :font_size 1,20
font_bold 1:font_color 1,255,0,0:Caption 1,"Bonjour à tous"

' color 1,255,255,255

compteur%=0

  While compteur% < 4

    caption 1,monTexte$(compteur%)

      FOR i%=50 to 250 step 2
            color 0,i%,i%,i%
            color 1,i%,i%,i%
            TOP 1 ,i%+100 : LEFT 1,(width (0)/2)  -(width (1)/2)
            pause 30
      NEXT i%

    compteur% =compteur% +1

  End_While

'  Fin de boucle masquer le texte d'accueil
HIDE 1 :Left 1,(F_width%-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 12
Sprite_File_load 12,"img/Plane_down.bmp"
Sprite_position 12,250,(height(50)-150)
sprite_hide 12

' Sprite avion d'attaque
Sprite 13
Sprite_File_load 13,"img/Plane_up.bmp"
Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)

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

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

' 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 explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

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

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

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

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

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

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

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

'  **********************************************************************
' 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 21
Sprite_File_load 21,"img/Bullet_Diag2.bmp"
Sprite_hide 21

Sprite 22
Sprite_File_load 22,"img/Bullet_Diag1.bmp"
Sprite_hide 22


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

end_sub

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


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

'  chargement des sons du jeu'

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

'  chargement du son explosion'

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

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

sound 17
'  chargement du son N=10
file_load 17,"son/ORAS.mp3"
play 17

end_sub

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


              play 10

              sprite_hide 3:sprite_y_position 3,10:pause 10
              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (9),sprite_y_position (9)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (9),sprite_y_position (9)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_position 28,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_position 29,sprite_x_position (9) ,sprite_y_position (9)
              sprite_show 29: pause 10: sprite_hide 29

              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
              TEXT 2,STR$(Kills%)
              key%=0

END_SUB

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

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


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

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

 Animation:
  ON_KEY_DOWN 0,move

 '  Vérification position avion dessus ennemi
  if sprite_y_position(13)< 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


 end_if

 '  vérification d'un crash avion_missile


  if sprite_y_position(13)=<(E_top% +40)



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

        end_if

  end_if


 if p%<1 then p%=10

  if p%=>80 then p%=80

    j% =j% + 5
    sprite_y_position 7,(sprite_y_position(7)-j%)
    sprite_y_position 8,(sprite_y_position (8)-j%)

          if sprite_y_position(3)< height(50)

            sprite_y_position 3, (sprite_y_position(3)+p%)
            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

    if j%=50

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

    end_if

return

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

Move:

key% = key_down_code

  select key%


      case 27 :'  arrêt des boucles
            gosub fin

      case 32


          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              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% -20 :sprite_y_position 4,M_top% :M_left% = sprite_x_position(4)

                end_while

              sprite_hide 4

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

                explosion_animation() : RETURN

              end_if

      case 37 : '  gauche
                '  appel du sub deplacement(valeur%)
                vit%=(-5)*multiple_vit%
                sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14
                deplacement(vit%):display:return




      case 38
      p%=P%+10:if memimg% <> 4 then sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:memimg%=4 :' haut
      multiple_vit%=multiple_vit% +1

      case 39 : '  droite
     
      vit%=5*(multiple_vit%)
      sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15
      deplacement(vit%):display::return


      case 40
      p%=p%-10:if memimg% <> 3 then sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15:memimg%=3 :' bas
      multiple_vit%=multiple_vit% -1
      case 87 : '  code de la touche W  mettre un autre missile et un autre son


         
          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21

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

                end_while


              sprite_hide 21

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

                explosion_animation() :RETURN

              end_if


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


         
          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)

              sprite_show 22

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

                end_while

              sprite_hide 22

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

                explosion_animation() :  RETURN

              end_if

  end_select


    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12:pause 10
  '  Mise en place de l'avion à la position demandée


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

erreur:
  message "Erreur"
Return



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

fin:
  timer_off 20
  message "Merci d'avoir pris le temps de jouer"
  message "Vous avez éliminé " +str$(kills%)+ " ennemis !!!"
  terminate

return

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

Les nouveautés du code sont les mises en place des ON et OFF KEY.
Un meilleur rendu de l'affichage de la form 2 , de la scene2d (en full_space)
une gestion des couleurs de l'intro différentes des précédentes version.
un nouveau sub avec variable passer en paramètre.
un choix de passer l'intro. par message yes no.
si la musique du jeu n'est pas dans l'ancien zip mettre en commentaire.
une variable de multiplication de vitesse du vaisseau ami
un nouveau compteur et placement du bouton exit.

Merci pour vos précieux conseil qui me font avancer .
A bientôt.
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 23:09


Salut Fhoest !

Très belle progression dans ton code. cheers

J'ai testé et tué 34 ennemis avant de quitter le jeu.

Bonne continuation !
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyDim 8 Avr 2018 - 23:13

Bonsoir Marc et merci.
voici l'erreur que je rencontre parfois:
fichier erreur
Mais je ne travaille pas sur la dernière version de panoramic ,j'ai toujours celle de 2015.
c'est peut être pour ça.
A bientôt.
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyLun 9 Avr 2018 - 8:45

Bonjour à tous,

@Fhoest,

Oui ! ça progresse. J'ai joué sans problème.

J'ai découvert ceci: if message_confirmation_yes_no ("Passer l'intro ?")=0 then annonce_jeu()
Bonne idée, mais la bonne valeur pour ce message devrait être 2, car 2 correspond au bouton "No"

La nouvelle intro est plus sympa.

Pour le fichier erreur, cela ne m'apporte rien.

Par contre remplace le sous-programme erreur par celui-ci
Code:
erreur:
  error_french
  message "Erreur à la ligne "+str$(error_line)+" "+error_type$
Return

De cette façon tu auras la ligne qui provoque l'erreur et la cause.

A+
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyLun 9 Avr 2018 - 19:39

Bonsoir,
Citation :
Bonne idée, mais la bonne valeur pour ce message devrait être 2, car 2 correspond au bouton "No"
merci Jean claude, oui je n'ai pas tester le code avec 0 pour le message j'avais fait le test avec 1 et ensuite je me suis dit
Ah ouais c'est pas 1 mais le contraire que je dois mettre donc je me suis dit que c'était automatiquement 0.
Bin !!! je me suis trompé zut ... pas grave vous êtes de bon conseil en cas d'erreur (vous ,pluriel bien sur Smile
je vais également suivre tes recommandations pour le message d'erreur. et faire progresser le jeu.
A bientôt et merci pour tout vos compliments et encouragements.
cheers
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyLun 9 Avr 2018 - 20:51

Bonsoir à tous.

Je pense, Fhoest, que tu peux maintenant voir les déplacements des "attaquants".
Le vaisseau (ou avion) qui descend vers la bas de l'écran le fait de manière saccadée.
Il faut que tu lui trouves une autre façon de se déplacer.

Le but: il doit se déplacer de 1 pixel à la fois mais on doit pouvoir maîtriser sa vitesse de déplacement.
C'est en fait le même problème que le déplacement de l'avion "tireur", car lui il se déplace de manière fluide.

Si tu introduis une variable qui gère la vitesse du SPRITE vaisseau (ou avion) qui descend tu pourras ensuite augmenter progressivement sa vitesse et en conséquence la difficulté du jeu. Very Happy

C'est ici (je le présent) que l'on peut s’interroger sur le TIMER qui gère le sous-programme "animation"
1) Le nom du sous-programme n'est pas adapté, je vois plutôt DeplacementAvionEnnemi, pour bien cibler à quoi sert ce sous-programme de type LABEL. A moins que ce ne soit pas ici qu'on déplace le vaisseau (ou avion) qui descend .
2) Il faut vérifier que le TIMER soit stopper chaque fois qu'il y a un tir vainqueur et qu'il reparte dès que le traitement du tir soit terminé.
Pour cela il y a TIMER_OFF N (N=20, dans ton code) comme tu l'as fait, mais  ensuite il faut le réactiver par TIMER_ON N (20).
Sinon il n'y a plus d’animation (je veux dire de déplacement).

Voir aussi TIMER_INTERVAL: regardes dans le manuel de référence, à quoi il sert.

Réfléchis à tout ça, et ensuite... on verra...

En tous cas, Bravo ! Car tu avances...

A+
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyLun 9 Avr 2018 - 23:30

Bonsoir,
voici la dernière version avec les derniers conseil de Jean claude, sans une difficulté de jeu automatique ,pour l'instant elle se gère manuellement avec les boutons up et down (flèche du clavier),oups ça se complique et se peaufine en un jeu qui me donne de plus en plus de fil à retordre et aussi l'envie d'y jouer.
prochainement il y aura une gestion de difficulté en temps et les points afficher seront de meilleurs qualité pour donner un effet plus sérieux avec des paliers pour obtenir un niveau dans le jeu.
A bientôt et amusez vous bien
voici le zip avec les fichiers évolution la version V5 est la dernière.
cheers zip dernière version

edit pour ceux qui veulent déjà la V6 en .bas

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

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

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

'  Objet Ennemy destruction ok
dim Kills%

'  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%,F_Width%
dim positionFormx%,positionFormy%

'  variable de memoire image
Dim memimg%

'  variable de memoire appuie touche
Dim key%

'  Variable position minimale left ennemy
Dim PosMin%

'  variable vitesse
Dim speed% :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

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 Boutons
'  Numéro 10 - 20 Son
'  Numéro 30 - 40 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

'  Instancier la variable en fonction de la largeur de la forme
F_Width%=width (0)

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

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


'  **********************************************************************
Rem =====================================================================
'  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 20
on_timer 20,animation
timer_interval 20,50
'  **********************************************************************

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

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

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

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

'  **********************************************************************
Edit 2:hide 2
top 2,(height(50)-40)
left 2,(width (0) -170)
width 2,20
height 2,height (16)
show 2

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 (14)> (width(50)-130) then exit_sub
  if valeur% <0 and sprite_x_position (15)< 80 then exit_sub
              '  while sprite_x_position (14)=< (width(50)-130)
                ' repeat

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

                sprite_x_position 12,(250 +x%) :sprite_x_position 13,(250 +x%)
                sprite_x_position 14,(250 +x%) :sprite_x_position 15,(250 +x%)
                p_left%=250+x%

if scancode=0
sprite_hide 12:sprite_hide 14:sprite_hide 15
pause 1
sprite_show 13
end_if
end_sub

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

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

compteur%=0

  While compteur% < 4

    play 19
    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,(F_width%-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 12
Sprite_File_load 12,"img/Plane_down.bmp"
Sprite_position 12,250,(height(50)-150)
sprite_hide 12

' Sprite avion d'attaque
Sprite 13
Sprite_File_load 13,"img/Plane_up.bmp"
Sprite_position 13,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 (13) : P_left% = sprite_X_position (13)

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

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

' 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 explosion 1
Sprite 9
Sprite_File_load 9,"img/Explosion_1.bmp" : '  E_top%  pour booum !!
sprite_position 9,82,10
sprite_hide 9

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

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

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

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

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

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

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

'  **********************************************************************
' 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 21
Sprite_File_load 21,"img/Bullet_Diag2.bmp"
Sprite_hide 21

Sprite 22
Sprite_File_load 22,"img/Bullet_Diag1.bmp"
Sprite_hide 22


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

end_sub

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


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

'  chargement des sons du jeu'

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

'  chargement du son explosion'

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

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

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

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

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

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

timer_on 20
              play 10


              sprite_show 9: pause 10: sprite_hide 9
              sprite_position 23,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 23: pause 10: sprite_hide 23
              sprite_position 24,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 24: pause 10: sprite_hide 24
              sprite_position 25,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 25: pause 10: sprite_hide 25
              sprite_position 26 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 26: pause 10: sprite_hide 26
              sprite_position 27 ,sprite_x_position (3),sprite_y_position (3)
              sprite_show 27: pause 10: sprite_hide 27
              sprite_hide 3
              sprite_position 28,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 28: pause 10: sprite_hide 28
              sprite_show 3:pause  3 :sprite_hide 3
              sprite_position 29,sprite_x_position (3) ,sprite_y_position (3)
              sprite_show 29: pause 10: sprite_hide 29
              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
              TEXT 2,STR$(Kills%)
              key%=0

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(13)< 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


 end_if

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

        if E_left% < (P_left% +50) and E_left% >(P_left% -50)
            timer_off 20
            sprite_hide 13: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:

key% = key_down_code

  select key%


      case 27 :'  arrêt des boucles
            gosub fin

      case 32 :' barre espace
          timer_off 20

          play 6

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              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)

                explosion_animation() : RETURN

              end_if
             
            timer_on 20

      case 37 : '  gauche

                '  appel du sub deplacement(valeur%)
                vit%=(-5)*multiple_vit%
                sprite_show 15:sprite_hide 12:sprite_hide 13:sprite_hide 14
                deplacement(vit%):display:return




      case 38  :' haut
     
      p%=1*(multiple_p%)
      sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
      multiple_vit%=multiple_vit% +1
      multiple_p%= multiple_p% +1


      case 39 : '  droite
     
      vit%=5*(multiple_vit%)
      sprite_show 14:sprite_hide 12:sprite_hide 13:sprite_hide 15
      deplacement(vit%):display:return


      case 40:' bas

      p%=(-1)*(multiple_p%)
      sprite_show 12:sprite_hide 13:sprite_hide 14 :sprite_hide 15
      multiple_vit%=multiple_vit% -1
      multiple_p%= multiple_p% +1

    '  deplacement(p%):display:return

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

              timer_off 20
         
          play 18

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 21,(P_top%-25) :sprite_x_position 21,(P_left% +10)
              M_top% = sprite_y_position(21)
              sprite_show 21

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

                  OFF_KEY_DOWN 0
                end_while


              sprite_hide 21

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

                explosion_animation() :RETURN

              end_if
             
            timer_on 20

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

          timer_off 20
         
          play 18

              sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12
              sprite_y_position 22,(P_top%-25) :sprite_x_position 22,(P_left% +10)
              M_top% = sprite_y_position(22)

              sprite_show 22

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

                  OFF_KEY_DOWN 0
                end_while

              sprite_hide 22

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

                explosion_animation() :  RETURN

              end_if
              timer_on 20

  end_select


    sprite_Show 13:sprite_hide 14:sprite_hide 15 :sprite_hide 12: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 ============================================================================
'  ***********************************************************************

fin:
  timer_off 20

  message "Merci d'avoir pris le temps de jouer"
  message "Vous avez éliminé " +str$(kills%)+ " ennemis !!!"
  terminate

return

Rem ============================================================================
'  <<<<<<<<<<<<<<<<<<<<<<    FIN DES LABELS  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyMar 10 Avr 2018 - 8:46

Bonjour Fhoest,

J'ai un problème, Il manque des images et des sons dans le nouveau ZIP que tu as mis à disposition.

Impossible de tester.

A+
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyMar 10 Avr 2018 - 13:02

Bonjour à tous !

Salut Fhoest et Jean-Claude !

J'ai voulu tester aussi, la nuit dernière, mais comme dit Jean-Claude, il manque les nouveaux fichiers externes de la version 6.

En effet, le zip disponible concerne uniquement la version 5 mais sans le code source...

Et le code source ci-dessus est la version 6 sans les nouveaux fichiers...

Bonne continuation !
Revenir en haut Aller en bas
Fhoest

Fhoest


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyMar 10 Avr 2018 - 20:05

Bonjour, Cool
Oups j'ai pas mis le bon zip. en même temps on est pas loin de la fête des cloches donc je suis excusé.lol!
voici le zip:
Bon zip avec V6 et V5 bas et exe
A bientôt. sunny
Revenir en haut Aller en bas
http://programmer-en-vb.forumactif.org/
Jean Claude

Jean Claude


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

Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 EmptyMar 10 Avr 2018 - 20:08

lol!
Pas grave, je regarderai demain...

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Le ptit plus du jeu panoramic plane suite... - Page 2 Empty
MessageSujet: Re: Le ptit plus du jeu panoramic plane suite...   Le ptit plus du jeu panoramic plane suite... - Page 2 Empty

Revenir en haut Aller en bas
 
Le ptit plus du jeu panoramic plane suite...
Revenir en haut 
Page 2 sur 4Aller à la page : Précédent  1, 2, 3, 4  Suivant
 Sujets similaires
-
» ptit bug dans panoramic
» Jeu des ptit chvaux
» Ptit caprice à propos des symboles non latin de base
» Logithèque : une base de données en Panoramic pour Panoramic
» Version 9.15 : bug avec les objets button (clicked() ?)

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: