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
» I Love You
par papydall Aujourd'hui à 1:15

» mise a jour calculatrice
par joeeee2017 Aujourd'hui à 1:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Hier à 18:49

» [solved] 3D_LINE How to ?
par papydall Hier à 6:51

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Rebond

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jicehel

avatar

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

MessageSujet: Rebond   Dim 2 Déc 2012 - 18:28

Un petit source léger, je n'en dis pas plus essayez vous même Wink
Bon, ça peut sans doute être mieux, mais je voulais faire ça.
J'espère que vous aimerez bien. Ce n'est pas un jeu, juste la gestion de la balle seule, mais ça donnera peut être des idées.
Code:
' *********************************
' *                              *
' *    REBOND.BAS par JICEHEL    *
' *                              *
' *********************************

init() : init_0() : go() : caption 0, "Programme arrêté par l'utilisateur"
wait 1000
terminate

' ******************************************************************************
SUB init()
    dim Pi : Pi = 3.14159265 : ' Constante Pi
    dim titre$ : titre$ = " *** REBOND *** APPUYER SUR <ESC> POUR ARRETER"
    dim v,vbx,vby  : ' vitesse de la balle, vitesse en x et vitesse en y
    dim xb,yb      : ' x et y de la balle
    dim rb : rb=20  : ' rayon de la balle
    dim xb1, yb1    : ' ancien x et y de la balle
    dim h_0, l_0 : h_0 = 700 : l_0 = 1000 : ' dimension de la fenêtre principale
    dim cbr, cbv, cbb : cbr = 50 : cbv = 50 : cbb = 50 : ' couleur de la bordure de la balle
    dim br, bv, bb    : br = 200 : bv = 50 : bb = 50 : ' couleur de la balle
    xb=0 : yb = h_0 - 238 - 2*rb : vbx = 20  : vby = 40
END_SUB

' ******************************************************************************
SUB position_ball()
    if (vby < 0 and abs(vbx) > 0) then vby = vby + 0.5 : else : if yb < (h_0 - (38 + 2*rb)) or abs(vbx) > 0 then vby = vby + 0.4 : else : vby = 0
    if xb < 0 or xb > (l_0 - (16 + 2*rb)) then vbx = 0 - vbx
    if yb > (h_0 - (38 + 2*rb)) and abs(vbx) > 0 then vby = 0 - abs(vby)
    if abs(vbx) > 1+abs(vby)
      if vbx > 0 then vbx = vbx - 0.1 : else : vbx = vbx + 0.1
    end_if
    if abs(vbx) <= 1
      if vby < 0 then vby = vby + 0.01
      if vbx > 0 then vbx = vbx - 0.05 : else : if vbx < 0 then vbx = vbx + 0.05
    end_if
    xb = xb + vbx : yb = yb + vby : sprite_position 1,xb,yb
END_SUB

' ******************************************************************************
SUB init_0()
  width 0,l_0 : height 0, h_0 : cls : caption 0, titre$
  picture 1 : top 1,0: left 1,0 : height 1, h_0-38: width 1,l_0-16 : hide 1
  2D_target_is 1 : color 1,0,0,0
  2D_pen_color cbr, cbv, cbb : 2D_fill_color br, bv, bb : 2D_Circle 0+rb, 0+rb, rb
  image 2 : 2D_image_copy 2,0,0,2*rb,2*rb : height 2,2*rb : width 2, 2*rb
  2D_target_is 0 :  delete 1
  scene2D 1 : top 1,0: left 1,0 : height 1, h_0-38: width 1,l_0-16
  sprite 1 : sprite_image_load 1,2
END_SUB

' ******************************************************************************
SUB go()
  repeat
    position_ball()
    wait 30
  until scancode = 27
END_SUB

' **************** F I N ***************' *********************************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Rebond   Dim 2 Déc 2012 - 18:56

Hum ! Intéressant !

Lorsqu’on n’appuie pas sur <ESC> et on attend la fin, on ne peut sortir du programme que par <ESC> bien que la balle soit immobilisée.
J’ai modifié le test de sortie comme ceci (ligne 57)
Code:
 until scancode = 27 or (vbx = 0 and vby = 0)
Mais ce n’est qu’un simple « mais » pour répondre quelque chose !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Rebond   Dim 2 Déc 2012 - 20:10

Bien !
Dommage que la balle soit la plupart du temps en dehors de l'écran:
je la vois rebondir, disparaitre pendant 15 secondes, revenir comme une flèche pour repartir 15 secondes en dehors de l'écran...
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Invité
Invité



MessageSujet: Re: Rebond   Dim 2 Déc 2012 - 20:23

Citation :
¡ sɹǝʌuǝ,l ɐ ʇsǝ uɐɹɔǝ ǝɹʇoʌ ǝnb ʇsǝ,ɔ ıɔǝɔ zǝsıl snoʌ ıs
Perdu: mon écran est à l'endroit; et je lis quant même!
Revenir en haut Aller en bas
papydall

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 0:59

Nardo26 a écrit:

je la vois rebondir, disparaitre pendant 15 secondes, revenir comme une flèche pour repartir 15 secondes en dehors de l'écran...
Laughing

Moi je la vois revenir comme une balle
et je n'ai pas vu la flèche

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

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 1:18

J'ai fais une petite modif par ce qu'il y avait un petit problème pour certaines valeurs (quand on lancé avec une vitesse horizontale nulle)
sinon pour le fait que la balle sortait de l'écran, c'était juste par ce que j'avais volontairement mis une forte vitesse, mais ça on met ce que l'on veut ...
Pour le source ci dessous, j'ai mis des valeurs plus modestes Wink et le programme s’arrête quand la balle s’arrête en effet, c'est mieux comme ça Papydall.
Par contre, j'ai mis une variable de sortie car si on lance la balle verticalement, on a vbx = 0 et du coup quand la balle change de sens, on a vby = 0, donc on sort au premier rebond (c'est un cas particulier, mais je voulais pouvoir lancer dans n'importe quelle direction pour faire un jeu un jour sans doute...)
Code:
' *********************************
' *                              *
' *    REBOND.BAS par JICEHEL    *
' *                              *
' *********************************

init() : init_0() : go()
if balle_arretee = 1 then caption 0, "balle arrétée" : else: caption 0, "Programme arrêté par l'utilisateur"
wait 3000
terminate

' ******************************************************************************
SUB init()
    dim Pi : Pi = 3.14159265 : ' Constante Pi
    dim titre$ : titre$ = " *** REBOND *** APPUYER SUR <ESC> POUR ARRETER"
    dim v,vbx,vby  : ' vitesse de la balle, vitesse en x et vitesse en y
    dim xb,yb      : ' x et y de la balle
    dim rb : rb=20  : ' rayon de la balle
    dim xb1, yb1    : ' ancien x et y de la balle
    dim h_0, l_0 : h_0 = 700 : l_0 = 1000 : ' dimension de la fenêtre principale
    dim cbr, cbv, cbb : cbr = 50 : cbv = 50 : cbb = 50 : ' couleur de la bordure de la balle
    dim br, bv, bb    : br = 200 : bv = 50 : bb = 50 : ' couleur de la balle
    dim ayb : ' mémorise l'ancienne hauteur max
    dim balle_arretee : ' Bascule pour savoir si la balle est arrété
    xb=0 : yb = h_0 - 238 - 2*rb : vbx = 6  : vby = -13  : ayb = yb
END_SUB

' ******************************************************************************
SUB position_ball()
dim_local if$
 if (vby < 0 and abs(vbx) > 0)
    vby = vby + 0.5 : ayb = yb : if$ = "1"
 else
    if yb < (h_0 - (38 + 2*rb)) or abs(vbx) > 0

      vby = vby + 0.4 : if$ = "2"
    else
      if abs(vbx) = 0
        if ayb > (h_0 - (40 + 2*rb))
          vby = 0 : balle_arretee = 1 : if$ = "3"
        else
          vby = 0 - abs(vby) + 0.5 : if$ = "4"
          if abs(vby) < 1 and abs(vbx) < 1 then vbx=0 : vby = 0 : balle_arretee = 1
        end_if
      end_if
    end_if
 end_if
 if xb < 0 or xb > (l_0 - (16 + 2*rb)) then vbx = 0 - vbx
 if yb > (h_0 - (38 + 2*rb)) and abs(vbx) > 0 then vby = 0 - abs(vby) + 0.5
 if abs(vbx) > 1+abs(vby)
    if vbx > 0 then vbx = vbx - 0.1 : else : vbx = vbx + 0.1
 end_if
 if abs(vbx) <= 1
  if vbx > 0 then vbx = vbx - 0.05 : else : if vbx < 0 then vbx = vbx + 0.05
 end_if
 xb = xb + vbx : yb = yb + vby : sprite_position 1,xb,yb
' caption 0, "xb:"+str$(xb)+"  : yb:"+str$(yb)+"  : vbx:"+str$(vbx)+"  : vby:"+str$(vby)+"  : ayb:"+str$(ayb) + "  : Boucle = "+If$  : wait 20
END_SUB

' ******************************************************************************
SUB init_0()
  width 0,l_0 : height 0, h_0 : cls : caption 0, titre$
  picture 1 : top 1,0: left 1,0 : height 1, h_0-38: width 1,l_0-16 : hide 1
  2D_target_is 1 : color 1,0,0,0
  2D_pen_color cbr, cbv, cbb : 2D_fill_color br, bv, bb : 2D_Circle 0+rb, 0+rb, rb
  image 2 : 2D_image_copy 2,0,0,2*rb,2*rb : height 2,2*rb : width 2, 2*rb
  2D_target_is 0 :  delete 1
  scene2D 1 : top 1,0: left 1,0 : height 1, h_0-38: width 1,l_0-16
  sprite 1 : sprite_image_load 1,2
END_SUB

' ******************************************************************************
SUB go()
  balle_arretee = 0
  repeat
    position_ball()
    wait 30
  until (scancode = 27 or balle_arretee = 1)
END_SUB

' **************** F I N ***************' *********************************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 2:06

Ça c’est beaucoup mieux, mais …
En fait j’ai 2 mais (juste pour rigoler)
1) Je crois que tu as utilisé la variable locale IF$ pour la mise au point du programme et tu as bien fait de REMer (j’invente des mots !) la ligne 57.
2) j’ai remarqué que tu commets toujours la même erreur en écrivant par ce que au lieu de parce que.

Le sens de parce que est tout à fait différent de par ce que.

On écrit en deux mots la conjonction parce que servant à introduire une proposition qui donne une cause, une explication, qui répond à la question pourquoi ?
Exemple : je suis étonné parce que je ne m’attendais pas à ça.
On peut remplacer parce que par car.

On écrit en trois mots la préposition par suivie du pronom ce et de que qui introduit une proposition relative répondant à la question par quoi ?
Exemple : je suis étonné par ce que j’ai entendu.
On peut remplacer par ce que par par cela.

Jicehel, je sais que tu es Cool , alors ne prends pas mal ce que j'ai écrit Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 2:39

Non t'inquiète Wink j'écris vite souvent et je ne fais pas très attention à l'orthographe (je vois plus les fautes quand je lis les autres). En tout cas merci et bonne nuit.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 8:59

C'est normal Papydall :
Jicehel a un tic nerveux sur le pouce qui se trouve juste au dessus de la barre d'espace...
(Puis, qu'elle idée de mettre la touche C à côté de cette barre plus longue que les autres !!! )

Sinon : ça va beaucoup mieux, j'arrive à voir la balle !!!
Il n'empêche, qu'une fois qu'elle s'est arrêtée, j'ai été tenté de la chopper avec ma souris pour la relancer... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jicehel

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 9:49

Hum, bonne idée, j'essayerais de programmer ça bientôt Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Rebond   Lun 3 Déc 2012 - 10:05

Salut Jicehel,

Il nous manque une main que l'on pourrait manipuler avec la souris pour redonner de la vitesse à la balle... Very Happy


Je sais: c'est facile de passer commande... lol!


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

avatar

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

MessageSujet: Re: Rebond   Mar 4 Déc 2012 - 2:56

Coucou, bon avant de me coucher, j'ai fais un petit truc simple, histoire de relancer la balle comme on veut
Code:
' **************************************
' *                                    *
' *    REBOND.BAS V2.0 par JICEHEL    *
' *                                    *
' **************************************

init() : init_0()
timer_on 5 : active 11
end

' ******************************************************************************
SUB init()
    label quitter,go, affiche_Vitesse, Ferme_Vitesse
    dim v,vbx,vby  : ' vitesse de la balle, vitesse en x et vitesse en y
    dim xb,yb      : ' x et y de la balle
    dim rb : rb=20  : ' rayon de la balle
    dim h_0, l_0 : h_0 = 700 : l_0 = 1000 : ' dimension de la fenêtre principale
    dim cbr, cbv, cbb : cbr = 50 : cbv = 50 : cbb = 50 : ' couleur de la bordure de la balle
    dim br, bv, bb    : br = 200 : bv = 50 : bb = 50 : ' couleur de la balle
    dim ayb : ' mémorise l'ancienne hauteur max
    dim xbmax, ybmax : ' fixe les limite max de la balle
    dim h_menus : h_menus = 60 : ' hauteur des menus
    xbmax = l_0 - (16 + 2*rb) : ybmax =  h_0 - h_menus - 2*rb
    xb=0 : yb = ybmax : vbx = 6  : vby = -13  : ayb = yb
    timer 5 : timer_off 5 : timer_interval 5,5 : on_timer 5,go
END_SUB

' ******************************************************************************
SUB position_ball()
 if (vby < 0 and abs(vbx) > 0)
    vby = vby + 0.5 : ayb = yb
 else
    if yb < ybmax or abs(vbx) > 0
      vby = vby + 0.4
    else
      if abs(vbx) = 0
        if ayb > ybmax
          vby = 0
        else
          vby = 0 - abs(vby) + 0.5
          if abs(vby) < 1 and abs(vbx) < 1 then vbx=0 : vby = 0
        end_if
      end_if
    end_if
 end_if
 if xb < 0 or xb > xbmax then vbx = 0 - vbx
 if yb > ybmax and abs(vbx) > 0 then vby = 0 - abs(vby) + 0.5
 if abs(vbx) > 1+abs(vby)
    if vbx > 0 then vbx = vbx - 0.1 : else : vbx = vbx + 0.1
 end_if
 if abs(vbx) <= 1
  if vbx > 0 then vbx = vbx - 0.05 : else : if vbx < 0 then vbx = vbx + 0.05
 end_if
 xb = xb + vbx : yb = yb + vby : sprite_position 1,xb,yb
END_SUB

' ******************************************************************************
SUB init_0()
  width 0,l_0 : height 0, h_0 : cls : caption 0, " *** REBOND ***"
  picture 1 : top 1,0: left 1,0 : height 1, h_0-h_menus: width 1,l_0-16 : hide 1
  2D_target_is 1 : color 1,0,0,0
  2D_pen_color cbr, cbv, cbb : 2D_fill_color br, bv, bb : 2D_Circle 0+rb, 0+rb, rb
  image 2 : 2D_image_copy 2,0,0,2*rb,2*rb : height 2,2*rb : width 2, 2*rb
  2D_target_is 0 :  delete 1
  scene2D 1 : top 1,0: left 1,0 : height 1, h_0-h_menus: width 1,l_0-16
  sprite 1 : sprite_image_load 1,2
  main_menu 10
  sub_menu 11 : inactive 11: caption 11,"Quitter" : parent 11,10 : on_click 11,quitter
  sub_menu 12 : Caption 12, "Paramètres de la balle" : parent 12,10 : on_click 12, affiche_Vitesse
  form 20 : hide 20 :  caption 20, "Paramètres de la balle" : on_close 20,Ferme_Vitesse
  width 20,280 : height 20,160 : top 20, (ybmax - 160)/2 : left 20, (xbmax-280)/2
  alpha 21: parent 21,20 : top 21,20 : left 21,10 : caption 21, "Vitesse horizontale"
  edit 22: parent 22,20 : top 22,20 : left 22,120
  alpha 23: parent 23,20 : top 23,40 : left 23,10 : caption 23, "Vitesse verticale"
  edit 24: parent 24,20 : top 24,40 : left 24,120
  alpha 27: parent 27,20 : top 27,60 : left 27,10 : caption 27, "Position horizontale"
  edit 28: parent 28,20 : top 28,60 : left 28,120
  alpha 29: parent 29,20 : top 29,80 : left 29,10 : caption 29, "Position verticale"
  edit 30: parent 30,20 : top 30,80 : left 30,120
END_SUB

' ******************************************************************************
go:
 timer_off 5
 position_ball()
 wait 30
 timer_on 5
return

Affiche_Vitesse:
  text 22,str$(vbx): text 24,str$(vby): text 28,str$(xb) : text 30,str$(yb)
  Show 20
Return

Ferme_Vitesse:
 vbx = val(text$(22))
 vby = val(text$(24))
 xb=val(text$(28))
 yb=val(text$(30))
Return

Quitter:
timer_off 5
Terminate
' **************** F I N ***************' *********************************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Rebond   Mar 4 Déc 2012 - 9:11

Aaaaah !! C'est beaucoup mieux comme ça !

il manque plus que de rentrer le coef de dureté ainsi que le poids de la balle et cela sera tip-top !!!
(...je plaisante, touche à rien !!!...)

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Contenu sponsorisé




MessageSujet: Re: Rebond   

Revenir en haut Aller en bas
 
Rebond
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Moteur Physique gérant les rebonds.
» Xpresso en pratique : bond et rebond
» Demande ballon basket rebond

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: