FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
CalendrierCalendrier

Partagez | 
 

 Panorabriques à la mode des menus

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 0:03

J'aime bien les nouvelles présentations actuelles des jeux que vous faites.
J'ai donc repris mon Panorabrique pour le mettre à la mode des menus.
Ca donne ça:
Code:
' Panorabrique V2 par Jean-Charles (Aout 2012)
'
' Bon après quelques mois, je pense qu'il est bon de reprendre ses vieux programmes
' et de les perfectionner un peu
'
' Objectif de cette version: structurer et commenter mieux
' Enrichir et améliorer un peu le jeu

  label labels : gosub labels
  gosub constantes
  gosub variables
  gosub donnees
  gosub initialisations
  gosub form0
  gosub menu
  gosub GUI
end

labels:
  label constantes, variables, donnees
  label form0, menu, GUI, initialisations
  label sortir,start, tick, restart, key
  label config, close_config, defaut, aide, close_aide
  label apropos, close_apropos, change_config, stopit
  label Lance_balle, Fin, Dessine_briques, Trace_brique
return

constantes:
  dim version$ : version$ = "V02.00"
  dim date_cre$ : date_cre$ = "15 Août 2012"
  dim taille% : taille% = 25 : ' taille des cases
  dim speed% : speed% = 30  : ' milli-secondes entre chaque mouvement
  dim Nb_b_ligne : Nb_b_ligne = 7  : ' Nombre de lignes de briques
  dim hauteur_b, largeur_b : largeur_b=1.55 :  hauteur_b=0.75
  dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies
  dim M1% : M1% = 0 - 1
return

variables:
  dim no%, no1%, no2% : ' Numméro d'objets temporaires
  dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0
  dim i%, j%, k%, n%, s$ : ' Déclaration de variables temporaires diverses
  dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés
  dim no_config_v%, no_config_speed%          : ' Timer, numéro des fenêtres, ...
  dim no_stop%, no_play%, no_start%
  dim xpad        : ' Position de la souris
  dim s, vies    : ' Score et nombre de vies
  dim xball,zball : ' position de la balle
  dim dx,dz      : ' direction de la balle
  dim vx,vz,v    : ' vitesse de la balle
  dim largeur_r  : ' Largeur de la raquette
  dim Nb_lignes  : ' Nombre de lignes de briques
  dim Nb_briques_restantes : ' Compte combien il reste de briques à détruire pour finir le niveau
  dim Nb_vies    : ' Définit le nombre de vie au démarrage
  dim Hauteur_cam : ' Définit la hauteur de la caméra
  dim Pause%      : ' Bascule pour mettre le jeu en pause ou reprendre
  dim Niveau%    : ' Niveau en cours
  dim t_c(Nb_couleur%,3)  : ' Gère les couleurs par un tableau de couleurs avec 3 composantes
return

donnees:
  data  0,  0,  0, 255,255,255, 155,155, 55,  180,180,80,  80, 80, 80,  80, 80,215
  data 215, 80, 80,  80,215, 80, 155,133,155,  100,215,100, 215, 80,215, 215,215, 80
  data  80,215,215, 100,100,215,  55,215,133,  133, 55,215, 215,133, 55,  55, 55,133
return

form0:
  ' Paramètrage de la fenêtre principale du jeu
  left 0,px% : top 0,py% : ' Position initale de la fenêtre 0
  width 0, w% : height 0,450
  caption 0,"PANORABRIQUE 3D"
  scene3d 1 : full_space 1 : color 1,170, 170, 255 :  ' cree le monde 3D avec un fond bleu clair
  cam_x_position 0  : cam_y_position Hauteur_cam : cam_z_position 13  : ' positionne la camera
  point_x_position 0 : point_y_position 0  : point_z_position -0.5 : ' objectif dirigé vers le centre
  light_x_position -5 : light_y_position 15 : light_z_position -50  : ' positionne la lumiere
  on_key_down 0,key
  no% = no% + 1
return

menu:
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : no_start% = no%
    caption no%,"Nouveau jeu" : on_click no%,start
  no% = no% + 1 : sub_menu no% : parent no%,no2% : no_stop% = no%
    caption no%,"Stop" : inactive no% : on_click no%,stopit
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"------------"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Options"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Configuration" : on_click no%,config
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Défauts" : on_click no%,defaut
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Aide"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Mode d'emploi" : on_click no%,aide
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"A-propos" : on_click no%,apropos
  return

GUI:

  ' Création des objets (balle, murs, raquette...)
  ' Numéro des objets 3D: 1=ball; 2= back wall; 3= left wall;  4 = rigth wall; 5=pad; 6=score

  hide 1
  3d_sphere 1, 0.3 : 3d_color 1,0,0,0 : 3d_collision_as_sphere 1 : ' Balle

  3d_box 2,  15.5, 0.4, 0.5 : 3d_color 2,155,155,55              : ' Mur du fond
  3d_x_position 2, 0 : 3d_y_position 2, 0 : 3d_z_position 2, -7.75

  3d_box 3, 0.5, 0.5, 15  : 3d_color 3,155,155,55                : ' Mur gauche
  3d_x_position 3, -7.5 : 3d_y_position 3, 0 : 3d_z_position 3, 0.25

  3d_box 4, 0.5, 0.5, 15  : 3d_color 4,155,155,55                : ' Mur droit
  3d_x_position 4, 7.5 : 3d_y_position 4, 0 : 3d_z_position 4, 0.25

  3D_text 6, "Score: 0" : 3d_color 6,250,250,0                  : ' Score
  3d_x_position 6, -6 : 3d_y_position 6, 5.5 : 3d_z_position 6, 5
  3d_x_scale 6, 1.2  : 3d_y_scale 6, 1.2  : 3d_z_scale 6, 1.2


  no% = no% + 1 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu
  timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%

  no% = no% + 1 : form no% : hide no% : no_apropos% = no% : ' Définit la fenêtre "A propos"
    top no%,200 : left no%,200 : caption no%,"A-propos"
    on_close no%,close_apropos
  no% = no% + 1 : alpha no% : parent no%,no_apropos%
    top no%,20 : left no%,20 : font_size no%,12
    s$ = "Jeu PANORABRIQUE 3D"+chr$(13)+chr$(10)+chr$(10)
    s$ = s$ + "Version: "+version$+chr$(13)+chr$(10)
    s$ = s$ + "Du: "+date_cre$+chr$(13)+chr$(10)+chr$(10)
    s$ = s$ + "Auteur: Jean-Charles"+chr$(13)+chr$(10)+chr$(10)
    caption no%,s$

  no% = no% + 1 : form no% : hide no% : no_aide% = no% : width no%,450 : ' Définit la fenêtre du Mode d'emploi
  caption no%,"Mode d'emploi" : on_close no%,close_aide
  no% = no% + 1 : alpha no% : parent no%,no_aide%
    top no%,20 : left no%,20 : font_size no_aide%,10 : k% = 2
    s$ = "Bienvenu dans PANORABRIQUE 3D !" + chr$(13)+chr$(10)+chr$(10) : k%=k%+1
    s$ = s$ + "Vous dirigez la raquette (rectangle gris) à l'aide de " + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "la souris. (Si vous déplacez la souris à droite, " + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "la raquette va à droite et réciproquement." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Vous devez faire rebondir la balle sur la raquette pour" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + " éviter qu'elle ne tombe" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "La balle rebondit sur la raquette et les murs." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "La balle brise les briques et rebondit."  + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Vous marquez des points en brisant les briques." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Quand il ne reste plus de briques, vous passez au" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "niveau suivant..." + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2
    s$ = s$ + "Cliquez pour lancer la balle" + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2
    s$ = s$ + "Appuyez sur une touche quelconque pour mettre le jeu en pause": k%=k%+2
    top no%-1,150 : left no%-1,200 : height no%-1,20*k%
    caption no%,s$

  no% = no% + 1 : form no% : hide no% : no_config% = no% : ' Définit la fenêtre de configuration
    top no%,200 : left no%,200 : caption no%,"Configuration"
    width no%,450
    on_close no%,close_config

    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,20 : left no%,10 : caption no%,"Vitesse de la balle :"
    no% = no% + 1 : edit no% : parent no%,no_config% : no_config_v% = no%
      top no%,20 : left no%,120 : width no%,30
      text no%,str$(v)
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,20 : left no%,160 : caption no%,"(1 (très lent) à 10 (très rapide))"
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,50 : left no%,10 : caption no%,"Vitesse du jeu (en ms):"
    no% = no% + 1 : edit no% : parent no%,no_config% : no_config_speed% = no%
      top no%,50 : left no%,120 : width no%,30
      text no%,str$(speed%)
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,50 : left no%,160 : caption no%,"(10 (très rapide) à 100 (très lent))"
    no% = no% + 1 : alpha no% : parent no%,no_config%
    ' Vont être rajoutés ici le paramètrage de la largeur de la raquette,
    ' du nombre de vies et de la hauteur de la caméra
  return

initialisations:
  w%= 690 : h% = 450  : ' Largeur et Hauteur de la fenêtre 0
  px% = 0 : py% = 0  : ' Position en x et en y de la fenêtre 0
  for i% = 1 to Nb_couleur% : ' Charge le tableau des couleurs avec leur 3 composantes
    for j% = 1 to 3 : read k% : t_c(i%,j%)=k% : next j%
  next i%

  largeur_r = 3.6  : ' largeur par défaut de la raquette
  v = 3            : ' vitesse par défaut
  Nb_vies = 3      : ' 3 vies
  Hauteur_cam = 7  : ' Hauteur par défaut de la caméra
return

sortir:
  timer_off no_timer%
  terminate

defaut:
  v = 3  : ' Rétablir les valeurs par défaut du jeu
  Nb_vies = 3
  largeur_r = 3.6
  Hauteur_cam = 7
  gosub change_config
return


stopit:
  timer_off no_timer%
  inactive no_stop%
  active no_start%
return

start:
  active no_stop%
  inactive no_start%
  show 1
  Pause% = 0
  vies = Nb_vies  : ' 3 vies
  vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05
  s=0        : ' Score à 0
  niveau%= 0

restart:
  timer_off no_timer%
  if O3D_OBJECT_EXISTS(5) = 1 then 3D_Delete 5
  if largeur_r > 0.75 then largeur_r = largeur_r - 0.1
  3d_box 5, largeur_r , 0.5, 0.5 : 3d_color 5,80,80,80          : ' Raquette
  3d_x_position 5, 0 : 3d_y_position 5, 0 : 3d_z_position 5, 7.75
  niveau% = niveau% + 1
  Nb_lignes = 6: gosub Dessine_briques
  caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%)
  gosub Lance_balle
  timer_on no_timer%
return

Dessine_briques:
  if variable("t_br")=1 then free t_br
  dim t_br(Nb_lignes*Nb_b_ligne,5)
  Nb_briques_restantes = 0
  For i%= 1 to Nb_lignes
    For j% = 1 to Nb_b_ligne
      Nb_briques_restantes=Nb_briques_restantes+1
      t_br(Nb_briques_restantes,1) = 1    : ' Brique non cassée
      t_br(Nb_briques_restantes,5) = 100  : ' Valeur en point de la brique
      t_br(Nb_briques_restantes,2) = t_c(5+i%,1): ' Valeur rouge
      t_br(Nb_briques_restantes,3) = t_c(5+i%,2): ' Valeur verte
      t_br(Nb_briques_restantes,4) = t_c(5+i%,3): ' Valeur bleue
      gosub Trace_brique
    Next j%
  Next i%
return

Trace_brique:
if O3D_OBJECT_EXISTS(50+Nb_briques_restantes)=0 then 3d_box 50+Nb_briques_restantes, largeur_b, hauteur_b, hauteur_b
  3d_color 50+Nb_briques_restantes,t_br(Nb_briques_restantes,2),t_br(Nb_briques_restantes,3),t_br(Nb_briques_restantes,4)
  3d_x_position 50+Nb_briques_restantes, -7.43 + j%*(largeur_b + 0.33)
  3d_y_position 50+Nb_briques_restantes, 0
  3d_z_position 50+Nb_briques_restantes, i% - 7 + (i%-1)*0.33
  3d_collision_as_cube 50+Nb_briques_restantes
return

Lance_balle:
  zball=7 : xball= xpad : 3d_x_position 1,xball : 3d_z_position 1,zball
  while pause% = 0
      if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while
  end_while
  dx=1.5-rnd(1):dz=-1
return

tick:
  timer_off no_timer%
    ' lecture position souris en X et positionne la raquette
    xpad=(mouse_x_position(1)-340)/15
    if xpad>6.5 then xpad=6.5
    if xpad<-6.5 then xpad=-6.5
    3d_x_position 5,xpad

  ' Teste le rebond sur les bords
  xball=xball+dx*vx
  if xball > 7  then xball=7 : dx=-1.5 + rnd (1) : ' Rebond à droite
  if xball < -7 then xball=-7: dx= 1.5 - rnd(1)  : ' Rebond à gauche
  3d_x_position 1,xball

  zball=zball+dz*vz
  if zball < -7 then zball=-7:dz=1 : ' Rebond sur le fond

  ' Teste si la balle touche la raquette
  if (zball>=7)and((xpad-(largeur_r/2))<xball)and(xball<(xpad+(largeur_r/2)))
    zball=7:dz=-1.5+rnd(1):s=s+1:3D_text_change 6,"Score: " + str$(s)
  end_if


  ' Teste si la balle touche une brique
  k%=1
  For i%= 1 to Nb_lignes
    For j% = 1 to Nb_b_ligne
      If O3D_OBJECT_EXISTS(50+k%) = 1
        If O3D_collision (1,50+k%) = 1
          3D_Delete 50+k%
          Nb_briques_restantes = Nb_briques_restantes - 1
          s = s + t_br(k%,5)
          dz = dz*M1% : ' on inverse la direction en Z
        End_if
      End_if
      k%=k%+1
    Next j%
  Next i%

  if vies > -1
  if vies > 1
      3d_text_change 6,"Score: " +str$(s) + "      Vies: "+str$(vies)
  else
      3d_text_change 6,"Score: " +str$(s) + "      Vie : "+str$(vies)
  end_if
  end_if
  if zball>= 8
    if vies > 0
      vies=vies-1 : wait 200 : gosub Lance_balle
    else
      goto fin
    end_if
  end_if
  if Nb_briques_restantes = 0
    Message "Bravo, niveau suivant ..."
    gosub restart
  end_if

  3d_z_position 1,zball
  timer_on no_timer%
return

key:
if pause% = 0
  pause% = 1
  caption 0,"PANORABRIQUE 3D - jeu en pause -"
  timer_off no_timer%
else
  pause% = 0
  caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%)
  timer_on no_timer%
end_if

return


config:
  inactive 0
  show no_config%
return

close_config:
  s$ = text$(no_config_v%)
  if numeric(s$)=0
    message "La vitesse de la balle est invalide !"
    text no_config_v%,str$(v%)
    active 0
    return
  end_if
  k% = val(s$)
  if (k%<1) or (k%>10)
    message "La vitesse de la balle est invalide !"
    text no_config_v%,str$(v%)
    active 0
    return
  end_if
  s$ = text$(no_config_speed%)
  if numeric(s$)=0
    message "La vitesse du jeu est invalide !"
    text no_config_speed%,str$(speed%)
    active 0
    return
  end_if
  n% = val(s$)
  if (n%<10) or (n%>100)
    message "La vitesse du jeu est invalide !"
    text no_config_speed%,str$(speed%)
    active 0
    return
  end_if
  v = k%
  speed%=n%
  gosub change_config
  active 0
return

change_config:
  timer_interval no_timer%, speed%
  vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05
return

aide:
  inactive 0
  show no_aide%
return

close_aide:
  active 0
return

apropos:
  inactive 0
  show no_apropos%
return

close_apropos:
  active 0
return

fin:
  gosub stopit
  message "Dommage, vous avez épuisé toute vos vies"
end

Si vous voyez des améliorations simples ou des options à rajouter, n'hésitez pas à les proposer.

Edit du 16 Août: Ajout de la pause, du clic pour lancer la balle et rétrécissement de la raquette


Dernière édition par Jicehel le Jeu 16 Aoû 2012 - 23:45, édité 5 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 2:30

Salut LEBEAU. Laughing
Ton jeu c’est beau ! Smile
J’ai joué sans même regarder le code.
J’ai du monde chez moi.
Tout à l’heure, je regarderais le code pour ….apprendre et …m’inspirer pour plus tard !
lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 2:46

Bah, le code c'est presque le même, j'ai juste essayé de le structurer à la façon Klaus, car j'aime beaucoup, même si quand je code par défaut, je ne résone pas naturellement comme ça. Le résultat de son code à la lecture ou pour modifier me plait bien Wink.
Bon il est super tard, je fonce au lit ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 16 Aoû 2012 - 3:14

cheers cheers cheers FELICITATIONS !!!!! cheers cheers cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 4:35

Jicehel, voici mes petites remarques tout à fait personnelles. Wink

* Ligne 153 : rebondit au lieu de rebondie
* Ligne 168 : left no%,120 : width no%,30 au lieu de 100 et 40
* Ligne 175 : left no%,120 : width no%,30 pour une meilleure lisibilité (dans OPTIONS/CONFIGURATION)
* Ligne 292 : je ne vois pas pourquoi ce test : if vies > -1
Je pense que le test de la ligne 293 suffit.
J’ai mis la ligne 292 et la ligne 298 (qui va avec) en REM et il me semble que c’est correct. Mais qui sait ?
Quelque chose m’échappe peut-être.

Maintenant le côté positif :
C’est un bon petit jeu. Le programme est très bien documenté, très clair, facile à suivre et à analyser.
J’apprendrais certainement quelque chose sur la 3D et compagnie !

BRAVO

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

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 5:24

Quand on commence un nouveau jeu, celui-ci démarre très rapidement de sorte qu’on perd souvent la 1ere balle. Sad
J’ai ajouté WAIT 500 juste avant GOSUB lance_balle en ligne 216. Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 8:41

Merci pour vos commentaires Wink Ca fait plaisir

@Papydall, j'ai fais les corrections indiquées dans tes messages.
J'ai laissé le if vies > -1, c'est un détail sans importance, c'est juste pour qu'il n'y ait pas le S à vies quand on en n(a plus qu'1 ou 0

Je mets à jour le code du premier post avec ces améliorations.

Si tu vois d'autres améliorations, n'hésite pas Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:00

Ce soir je rajouterais des paramètrages (Nombre de vies, ...), j'ai modifié un petit peu le programme du boulot pour virer un reste du programme de Klaus qui n'avait pas de raison d'être ... et oui, il faut faire gaffe quand on fait un copier / coller Shocked et j'arrète le timer quand on sort par le menu pour éviter les messages d'erreur...
Ce soir je voudrais rajouter aussi une pause quand on clic sur la souris de manière à pouvoir changer les paramètres, aller boire un bière ou changer de chaine sans perdre sa partie Smile
Du coup, je rajouterais reprendre dans le menu aussi quand on fait un stop (C'est le même principe)
Je pense que je remplacerais le wiat 500 par un décompte, du genre un fenêtre avec un 3, puis 2, puis 1 et ensuite la balle part.
C'est tout pour mes idées du midi...

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

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:12

Même si tu enlève if vies > -1 l’affichage reste correct : pas d’s à vie lorsque = à 1 ou à 0, mais c’est un détail sans importance comme tu l’as écrit !

Une petite idée Idea qui me vient à l’instant : si au début de la partie, la balle se trouve sur la raquette et on démarre par un click.
On n’a plus besoin du WAIT et on ne perd pas la 1ere balle avant d’avoir commencé.

PS : c’est peut-être une idée d’un jeune vieux farao dont le temps de réaction n’est plus celui d’un vieux jeune ! geek

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

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:14

Non c'est pas mal comme idée Smile Raquette et balle fixée à un endroit jusqu'au clic, ça me va bien ça aussi. En plus c'est simple à coder. Je prends. N'hésite pas pour les idées... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:22

J’avais hésité entre jeune vieux et vieux jeune. Smile
Ça a passé. C’est bon signe. bounce
sunny flower sunny
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 16 Aoû 2012 - 15:25

Pour corser le truc,

je vois bien une raquette qui rétrécie au fur et à mesure que l'on avance dans les niveaux... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:28

OK, ça doit pouvoir se faire, mais je mettrais une taille mini quand même ...
Après par contre, on peut jouer aussi sur la vitesse de la balle ...
Pourquoi pas, je mettrais ça dans les options
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:29

Et pourquoi Question
Pour que JC ne puisse plus jouer Question
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:32

Bah, c'est une option, ceux qui veulent souffrir le pourront... Tu sais Papydall, il y en a qui aime ça Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 15:52

Comme quoi, il y a de tout : des masos, des sados, des victimes, des bourreaux, etc.
Tout le monde devrait avoir son dû !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 16 Aoû 2012 - 22:08

Non, non, je ne suis ni l'un, ni l'autre... Evil or Very Mad

Mais il faut bien une évolution entre les niveaux sinon le jeu perd de son intérêt... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Jeu 16 Aoû 2012 - 23:38

Voilà, on clic désormais pour lancer la balle
Pause en appuyant sur une touche / relance en appuyant sur une touche
La raquette rétrécie à chaque niveau
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 17 Aoû 2012 - 0:34

j'ai eu un petit bug entre le niveau 2 et 3 ou mes vies sont revenus à 2 au lieu de 1... Wink
mais bon j'ai beaucoup de choses ouvertes sur le bureau aussi, il y a peut être eu une interférence... Laughing
J'essaierai plus en profondeur un peu plus tard...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Ven 17 Aoû 2012 - 1:22

Je n'ai pas réussi à le reproduire, j'ai regardé le code, ça m'a l'air bon.
Dis moi si ça se reproduit et si tu vois quand cela se produit dans ce cas si tu vois.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Ven 17 Aoû 2012 - 4:50

Une minuscule petite correction :
Avant dernière ligne : ajouter un s à toute dans : message "Dommage, vous avez épuisé toute vos vies"

affraid affraid Ça m’énerve les fotes dortograf ! affraid affraid

Seulement parfois, pas toujours! Smile Smile Smile

Hé ! Réflexion faite : pourquoi avons-nous épuisé toutes nos vies ?
On n’en a qu’une seule à ce que je sache et elle est encore en cours !

Ne serait-il pas mieux d’écrire ‘Dommage vous avez épuisé toutes vos balles’ ?
Hein ! Que penses-tu de cette super ultra grande trouvaille de fin de nuit ? Idea

Et ne dis pas que je dérive, car même si je dérive, j’atteindrais inéluctablement la rive !

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

avatar

Nombre de messages : 8011
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 17 Aoû 2012 - 6:24

Perso, je préfère "Billes" à "Balles"

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

avatar

Nombre de messages : 5876
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panorabriques à la mode des menus   Ven 17 Aoû 2012 - 8:26

Et voilà, version à 3 balles Wink
Code:
' Panorabrique V2 par Jean-Charles (Aout 2012)
'
' Bon après quelques mois, je pense qu'il est bon de reprendre ses vieux programmes
' et de les perfectionner un peu
'
' Objectif de cette version: structurer et commenter mieux
' Enrichir et améliorer un peu le jeu

  label labels : gosub labels
  gosub constantes
  gosub variables
  gosub donnees
  gosub initialisations
  gosub form0
  gosub menu
  gosub GUI
end

labels:
  label constantes, variables, donnees
  label form0, menu, GUI, initialisations
  label sortir,start, tick, restart, key
  label config, close_config, defaut, aide, close_aide
  label apropos, close_apropos, change_config, stopit
  label Lance_balle, Fin, Dessine_briques, Trace_brique
return

constantes:
  dim version$ : version$ = "V02.00"
  dim date_cre$ : date_cre$ = "15 Août 2012"
  dim taille% : taille% = 25 : ' taille des cases
  dim speed% : speed% = 30  : ' milli-secondes entre chaque mouvement
  dim Nb_b_ligne : Nb_b_ligne = 7  : ' Nombre de lignes de briques
  dim hauteur_b, largeur_b : largeur_b=1.55 :  hauteur_b=0.75
  dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies
  dim M1% : M1% = 0 - 1
return

variables:
  dim no%, no1%, no2% : ' Numméro d'objets temporaires
  dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0
  dim i%, j%, k%, n%, s$ : ' Déclaration de variables temporaires diverses
  dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés
  dim no_config_v%, no_config_speed%          : ' Timer, numéro des fenêtres, ...
  dim no_stop%, no_play%, no_start%
  dim xpad        : ' Position de la souris
  dim s, vies    : ' Score et nombre de balles restantes
  dim xball,zball : ' position de la balle
  dim dx,dz      : ' direction de la balle
  dim vx,vz,v    : ' vitesse de la balle
  dim largeur_r  : ' Largeur de la raquette
  dim Nb_lignes  : ' Nombre de lignes de briques
  dim Nb_briques_restantes : ' Compte combien il reste de briques à détruire pour finir le niveau
  dim Nb_vies    : ' Définit le nombre de balles au démarrage
  dim Hauteur_cam : ' Définit la hauteur de la caméra
  dim Pause%      : ' Bascule pour mettre le jeu en pause ou reprendre
  dim Niveau%    : ' Niveau en cours
  dim t_c(Nb_couleur%,3)  : ' Gère les couleurs par un tableau de couleurs avec 3 composantes
return

donnees:
  data  0,  0,  0, 255,255,255, 155,155, 55,  180,180,80,  80, 80, 80,  80, 80,215
  data 215, 80, 80,  80,215, 80, 155,133,155,  100,215,100, 215, 80,215, 215,215, 80
  data  80,215,215, 100,100,215,  55,215,133,  133, 55,215, 215,133, 55,  55, 55,133
return

form0:
  ' Paramètrage de la fenêtre principale du jeu
  left 0,px% : top 0,py% : ' Position initale de la fenêtre 0
  width 0, w% : height 0,450
  caption 0,"PANORABRIQUE 3D"
  scene3d 1 : full_space 1 : color 1,170, 170, 255 :  ' cree le monde 3D avec un fond bleu clair
  cam_x_position 0  : cam_y_position Hauteur_cam : cam_z_position 13  : ' positionne la camera
  point_x_position 0 : point_y_position 0  : point_z_position -0.5 : ' objectif dirigé vers le centre
  light_x_position -5 : light_y_position 15 : light_z_position -50  : ' positionne la lumiere
  on_key_down 0,key
  no% = no% + 1
return

menu:
  no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Fichier"
  no% = no% + 1 : sub_menu no% : parent no%,no2% : no_start% = no%
    caption no%,"Nouveau jeu" : on_click no%,start
  no% = no% + 1 : sub_menu no% : parent no%,no2% : no_stop% = no%
    caption no%,"Stop" : inactive no% : on_click no%,stopit
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"------------"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Sortir" : on_click no%,sortir
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Options"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Configuration" : on_click no%,config
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Défauts" : on_click no%,defaut
  no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no%
    caption no%,"Aide"
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"Mode d'emploi" : on_click no%,aide
  no% = no% + 1 : sub_menu no% : parent no%,no2%
    caption no%,"A-propos" : on_click no%,apropos
  return

GUI:

  ' Création des objets (balle, murs, raquette...)
  ' Numéro des objets 3D: 1=ball; 2= back wall; 3= left wall;  4 = rigth wall; 5=pad; 6=score

  hide 1
  3d_sphere 1, 0.3 : 3d_color 1,0,0,0 : 3d_collision_as_sphere 1 : ' Balle

  3d_box 2,  15.5, 0.4, 0.5 : 3d_color 2,155,155,55              : ' Mur du fond
  3d_x_position 2, 0 : 3d_y_position 2, 0 : 3d_z_position 2, -7.75

  3d_box 3, 0.5, 0.5, 15  : 3d_color 3,155,155,55                : ' Mur gauche
  3d_x_position 3, -7.5 : 3d_y_position 3, 0 : 3d_z_position 3, 0.25

  3d_box 4, 0.5, 0.5, 15  : 3d_color 4,155,155,55                : ' Mur droit
  3d_x_position 4, 7.5 : 3d_y_position 4, 0 : 3d_z_position 4, 0.25

  3D_text 6, "Score: 0" : 3d_color 6,250,250,0                  : ' Score
  3d_x_position 6, -6 : 3d_y_position 6, 5.5 : 3d_z_position 6, 5
  3d_x_scale 6, 1.2  : 3d_y_scale 6, 1.2  : 3d_z_scale 6, 1.2


  no% = no% + 1 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu
  timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%

  no% = no% + 1 : form no% : hide no% : no_apropos% = no% : ' Définit la fenêtre "A propos"
    top no%,200 : left no%,200 : caption no%,"A-propos"
    on_close no%,close_apropos
  no% = no% + 1 : alpha no% : parent no%,no_apropos%
    top no%,20 : left no%,20 : font_size no%,12
    s$ = "Jeu PANORABRIQUE 3D"+chr$(13)+chr$(10)+chr$(10)
    s$ = s$ + "Version: "+version$+chr$(13)+chr$(10)
    s$ = s$ + "Du: "+date_cre$+chr$(13)+chr$(10)+chr$(10)
    s$ = s$ + "Auteur: Jean-Charles"+chr$(13)+chr$(10)+chr$(10)
    caption no%,s$

  no% = no% + 1 : form no% : hide no% : no_aide% = no% : width no%,450 : ' Définit la fenêtre du Mode d'emploi
  caption no%,"Mode d'emploi" : on_close no%,close_aide
  no% = no% + 1 : alpha no% : parent no%,no_aide%
    top no%,20 : left no%,20 : font_size no_aide%,10 : k% = 2
    s$ = "Bienvenu dans PANORABRIQUE 3D !" + chr$(13)+chr$(10)+chr$(10) : k%=k%+1
    s$ = s$ + "Vous dirigez la raquette (rectangle gris) à l'aide de " + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "la souris. (Si vous déplacez la souris à droite, " + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "la raquette va à droite et réciproquement." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Vous devez faire rebondir la balle sur la raquette pour" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + " éviter qu'elle ne tombe" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "La balle rebondit sur la raquette et les murs." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "La balle brise les briques et rebondit."  + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Vous marquez des points en brisant les briques." + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "Quand il ne reste plus de briques, vous passez au" + chr$(13)+chr$(10): k%=k%+1
    s$ = s$ + "niveau suivant..." + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2
    s$ = s$ + "Cliquez pour lancer la balle" + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2
    s$ = s$ + "Appuyez sur une touche quelconque pour mettre le jeu en pause": k%=k%+2
    top no%-1,150 : left no%-1,200 : height no%-1,20*k%
    caption no%,s$

  no% = no% + 1 : form no% : hide no% : no_config% = no% : ' Définit la fenêtre de configuration
    top no%,200 : left no%,200 : caption no%,"Configuration"
    width no%,450
    on_close no%,close_config

    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,20 : left no%,10 : caption no%,"Vitesse de la balle :"
    no% = no% + 1 : edit no% : parent no%,no_config% : no_config_v% = no%
      top no%,20 : left no%,120 : width no%,30
      text no%,str$(v)
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,20 : left no%,160 : caption no%,"(1 (très lent) à 10 (très rapide))"
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,50 : left no%,10 : caption no%,"Vitesse du jeu (en ms):"
    no% = no% + 1 : edit no% : parent no%,no_config% : no_config_speed% = no%
      top no%,50 : left no%,120 : width no%,30
      text no%,str$(speed%)
    no% = no% + 1 : alpha no% : parent no%,no_config%
      top no%,50 : left no%,160 : caption no%,"(10 (très rapide) à 100 (très lent))"
    no% = no% + 1 : alpha no% : parent no%,no_config%
  return

initialisations:
  w%= 690 : h% = 450  : ' Largeur et Hauteur de la fenêtre 0
  px% = 0 : py% = 0  : ' Position en x et en y de la fenêtre 0
  for i% = 1 to Nb_couleur% : ' Charge le tableau des couleurs avec leur 3 composantes
    for j% = 1 to 3 : read k% : t_c(i%,j%)=k% : next j%
  next i%

  largeur_r = 3.6  : ' largeur par défaut de la raquette
  v = 3            : ' vitesse par défaut
  Nb_vies = 3      : ' 3 balles en stock
  Hauteur_cam = 7  : ' Hauteur par défaut de la caméra
return

sortir:
  timer_off no_timer%
  terminate

defaut:
  v = 3  : ' Rétablir les valeurs par défaut du jeu
  Nb_vies = 3
  largeur_r = 3.6
  Hauteur_cam = 7
  gosub change_config
return


stopit:
  timer_off no_timer%
  inactive no_stop%
  active no_start%
return

start:
  active no_stop%
  inactive no_start%
  show 1
  Pause% = 0
  vies = Nb_vies  : ' Initialise le compteur de balles restantes
  vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05
  s=0        : ' Score à 0
  niveau%= 0

restart:
  timer_off no_timer%
  if O3D_OBJECT_EXISTS(5) = 1 then 3D_Delete 5
  if largeur_r > 0.75 then largeur_r = largeur_r - 0.1
  3d_box 5, largeur_r , 0.5, 0.5 : 3d_color 5,80,80,80          : ' Raquette
  3d_x_position 5, 0 : 3d_y_position 5, 0 : 3d_z_position 5, 7.75
  niveau% = niveau% + 1
  Nb_lignes = 6: gosub Dessine_briques
  caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%)
  gosub Lance_balle
  timer_on no_timer%
return

Dessine_briques:
  if variable("t_br")=1 then free t_br
  dim t_br(Nb_lignes*Nb_b_ligne,5)
  Nb_briques_restantes = 0
  For i%= 1 to Nb_lignes
    For j% = 1 to Nb_b_ligne
      Nb_briques_restantes=Nb_briques_restantes+1
      t_br(Nb_briques_restantes,1) = 1    : ' Brique non cassée
      t_br(Nb_briques_restantes,5) = 100  : ' Valeur en point de la brique
      t_br(Nb_briques_restantes,2) = t_c(5+i%,1): ' Valeur rouge
      t_br(Nb_briques_restantes,3) = t_c(5+i%,2): ' Valeur verte
      t_br(Nb_briques_restantes,4) = t_c(5+i%,3): ' Valeur bleue
      gosub Trace_brique
    Next j%
  Next i%
return

Trace_brique:
if O3D_OBJECT_EXISTS(50+Nb_briques_restantes)=0 then 3d_box 50+Nb_briques_restantes, largeur_b, hauteur_b, hauteur_b
  3d_color 50+Nb_briques_restantes,t_br(Nb_briques_restantes,2),t_br(Nb_briques_restantes,3),t_br(Nb_briques_restantes,4)
  3d_x_position 50+Nb_briques_restantes, -7.43 + j%*(largeur_b + 0.33)
  3d_y_position 50+Nb_briques_restantes, 0
  3d_z_position 50+Nb_briques_restantes, i% - 7 + (i%-1)*0.33
  3d_collision_as_cube 50+Nb_briques_restantes
return

Lance_balle:
  zball=7 : xball= xpad : 3d_x_position 1,xball : 3d_z_position 1,zball
  while pause% = 0
      if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while
  end_while
  dx=1.5-rnd(1):dz=-1
return

tick:
  timer_off no_timer%
    ' lecture position souris en X et positionne la raquette
    xpad=(mouse_x_position(1)-340)/15
    if xpad>6.5 then xpad=6.5
    if xpad<-6.5 then xpad=-6.5
    3d_x_position 5,xpad

  ' Teste le rebond sur les bords
  xball=xball+dx*vx
  if xball > 7  then xball=7 : dx=-1.5 + rnd (1) : ' Rebond à droite
  if xball < -7 then xball=-7: dx= 1.5 - rnd(1)  : ' Rebond à gauche
  3d_x_position 1,xball

  zball=zball+dz*vz
  if zball < -7 then zball=-7:dz=1 : ' Rebond sur le fond

  ' Teste si la balle touche la raquette
  if (zball>=7)and((xpad-(largeur_r/2))<xball)and(xball<(xpad+(largeur_r/2)))
    zball=7:dz=-1.5+rnd(1):s=s+1:3D_text_change 6,"Score: " + str$(s)
  end_if


  ' Teste si la balle touche une brique
  k%=1
  For i%= 1 to Nb_lignes
    For j% = 1 to Nb_b_ligne
      If O3D_OBJECT_EXISTS(50+k%) = 1
        If O3D_collision (1,50+k%) = 1
          3D_Delete 50+k%
          Nb_briques_restantes = Nb_briques_restantes - 1
          s = s + t_br(k%,5)
          dz = dz*M1% : ' on inverse la direction en Z
        End_if
      End_if
      k%=k%+1
    Next j%
  Next i%

  if vies > -1
  if vies > 1
      3d_text_change 6,"Score: " +str$(s) + "      Balles: "+str$(vies)
  else
      3d_text_change 6,"Score: " +str$(s) + "      Balle : "+str$(vies)
  end_if
  end_if
  if zball>= 8
    if vies > 0
      vies=vies-1 : wait 200 : gosub Lance_balle
    else
      goto fin
    end_if
  end_if
  if Nb_briques_restantes = 0
    Message "Bravo, niveau suivant ..."
    gosub restart
  end_if

  3d_z_position 1,zball
  timer_on no_timer%
return

key:
if pause% = 0
  pause% = 1
  caption 0,"PANORABRIQUE 3D - jeu en pause -"
  timer_off no_timer%
else
  pause% = 0
  caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%)
  timer_on no_timer%
end_if

return


config:
  inactive 0
  show no_config%
return

close_config:
  s$ = text$(no_config_v%)
  if numeric(s$)=0
    message "La vitesse de la balle est invalide !"
    text no_config_v%,str$(v%)
    active 0
    return
  end_if
  k% = val(s$)
  if (k%<1) or (k%>10)
    message "La vitesse de la balle est invalide !"
    text no_config_v%,str$(v%)
    active 0
    return
  end_if
  s$ = text$(no_config_speed%)
  if numeric(s$)=0
    message "La vitesse du jeu est invalide !"
    text no_config_speed%,str$(speed%)
    active 0
    return
  end_if
  n% = val(s$)
  if (n%<10) or (n%>100)
    message "La vitesse du jeu est invalide !"
    text no_config_speed%,str$(speed%)
    active 0
    return
  end_if
  v = k%
  speed%=n%
  gosub change_config
  active 0
return

change_config:
  timer_interval no_timer%, speed%
  vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05
return

aide:
  inactive 0
  show no_aide%
return

close_aide:
  active 0
return

apropos:
  inactive 0
  show no_apropos%
return

close_apropos:
  active 0
return

fin:
  gosub stopit
  message "Dommage, vous avez épuisé toutes vos balles"
end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2483
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Panorabriques à la mode des menus   Ven 17 Aoû 2012 - 10:58

Salut Jicehel

Tient, ca me rappelle le bon temps... avec arkanoid et tous les autres...

ton casse brique est super ! j'ai réussi plus de 17000 points pour la premiere partie. ca promet...
Juste une petite precision : Dans ton menu sur la ligne 89, écris plutot :

caption no%,"-"

au lieu de tout tes tirets. cela permet un trait continu qui n'est pas selectionnable.
C'est un détail je te l'accorde.

sinon tu peux aussi rajouter les effets sur certaines briques.
commes par exemple :
- la balle se dedouble si tu détruit une certaine case.
- la raquette s'aggrandie ou rétrécie si tu casse une autre case
- des bonus descendent de l'ecran, et il faut les attraper.
etc....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

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

MessageSujet: Re: Panorabriques à la mode des menus   Ven 17 Aoû 2012 - 12:39

@Minibug
Bonne astuce que ce CAPTION NO%, "-" Idea

@Jicehel
En plus des effets proposés par Minibug, si tu pouvais aussi ajouter quelques effets sonores, ça sera plus gai, non ? Wink
Mais ceci est sans doute une autre histoire ! Rolling Eyes
santa
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Panorabriques à la mode des menus   

Revenir en haut Aller en bas
 
Panorabriques à la mode des menus
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Mode TRACE
» Boucle de menus débile
» Macro sons/autorail en mode horaire
» Mode "trace" sur Nuvi 1490
» connexion permanente en mode GPS par l'USB

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: