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.
 Faire passer toutes les balles rouges dans la partie droite Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
 Faire passer toutes les balles rouges dans la partie droite Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
 Faire passer toutes les balles rouges dans la partie droite Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
 Faire passer toutes les balles rouges dans la partie droite Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
 Faire passer toutes les balles rouges dans la partie droite Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
 Faire passer toutes les balles rouges dans la partie droite Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
 Faire passer toutes les balles rouges dans la partie droite Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
 Faire passer toutes les balles rouges dans la partie droite Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
 Faire passer toutes les balles rouges dans la partie droite Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
 Faire passer toutes les balles rouges dans la partie droite Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
 Faire passer toutes les balles rouges dans la partie droite Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
 Faire passer toutes les balles rouges dans la partie droite Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
 Faire passer toutes les balles rouges dans la partie droite Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
 Faire passer toutes les balles rouges dans la partie droite Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
 Faire passer toutes les balles rouges dans la partie droite 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 : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

  Faire passer toutes les balles rouges dans la partie droite

Aller en bas 
+6
Marc
jjn4
Yannick
Jean Claude
Jicehel
papydall
10 participants
AuteurMessage
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 2:44

Comme la mode ce temps-ci est aux jeux, voici ma contribution.
En moins d’une centaine de lignes de code, y compris les commentaires, voici un petit jeu qui peut vous distraire ou … vous énervez !
Le but du jeu : Faire passer toutes les balles rouges à droite, rien que ça.
Mais attention, ce n’est pas si facile que ça en a l’air !
Commencez par un petit nombre de balles : pour cela modifier la ligne 12.
Commencez avec … 3 balles, puis augmentez ce nombre 4,5,…, 10, 20 …
Tout est dans le code.

Bon amusement.

Code:

rem ============================================================================
rem                       Jeu de  balles
rem                        Par Papydall
rem                         Mars 2017
rem ============================================================================
A_Vos_Marques_Pret_Partez()
end
rem ============================================================================
SUB A_Vos_Marques_Pret_Partez()
    label clic
' Variables et constantes du programme
    dim NbBalles : NbBalles = 5 : ' Nombres de balles, plus le nombre est grand plus ça devient difficile
    dim xPosRed(NbBalles)  ,yPosRed(NbBalles)   : ' Coordonnées des balles rouges
    dim xPosGreen(NbBalles),yPosGreen(NbBalles) : ' Coordonnées des balles vertes
    dim xVitRed(NbBalles)  ,yVitRed(NbBalles)   : ' Vitesse des balles rouges selon les axes X/Y
    dim xVitGreen(NbBalles),yVitGreen(NbBalles) : ' Vitesse des balles vertes selon les axes X/Y
    dim r   : r = 5                             : ' rayon des balles
    dim w,h                                     : ' largeur et hateur du terrain de jeu
' ------------------------------------------------------------------------------
    width 0, 1000
    button 2 : left 2,100 : font_bold 2 : caption 2,"Jeu"     : on_click 2,clic
    button 3 : left 3,200 : font_bold 3 : caption 3,"Info"    : on_click 3,clic
    button 4 : left 4,300 : font_bold 4 : caption 4,"Quitter" : on_click 4,clic
' ------------------------------------------------------------------------------
    picture 10 : width 10,width(0)-50 : height 10,height(0)-100
    top 10,30  : left 10,20 : 2d_target_is 10 : 2d_fill_on : print_target_is 10
    w = width(10) : h = height(10)
    font_color 10,255,255,255 : font_size 10,14  : font_bold 10
    caption 0,"Faire passer les balles rouges à droite"
END_SUB
rem ============================================================================
' Initialisation des balles
SUB Init_Balles()
    dim_local i
    for i = 1 to NbBalles
        xPosRed(i)   = 10 + int(rnd(100)) : yPosRed(i)   = 10+int(rnd(100))
        xVitRed(i)   = rnd(10) :yVitRed(i) = rnd(5)
        xPosGreen(i) = 10 + int(rnd(100)) : yPosGreen(i) = 10+int(rnd(100))
        xVitGreen(i) = rnd(10) :yVitGreen(i) = rnd(5)
    next i
END_SUB
rem ============================================================================
Clic:
    select number_click
        case 2 : Jeu()
        case 3 : Info()
        case 4 : terminate
    end_select
return
rem ============================================================================
SUB Info()
    dim_local t$
    t$ = "Le terrain du jeu est divisé en deux partie par une cloison imperméable." + chr$(13)
    t$ = t$ + "Cette cloison comporte une ouverture par où peuvent passer les différentes balles." + chr$(13)
    t$ = t$ + "Le but du jeu est de faire passer toutes les balles rouges dans la partie droite." + chr$(13)
    t$ = t$ + "Pour cela, vous utilisez les flèches <HAUT> et <BAS> pour déplacer cette ouverture." + chr$(13)+chr$(13)
    t$ = t$ + "     B  O  N      A  M  U  S  E  M  E  N  T     !!!"
    message t$
END_SUB
rem ============================================================================
SUB Jeu()
    dim_local i,r2,h2,deb, NbRouges
    r2 = 2*r : h2 = 50 : deb = 20 : inactive 2 : Init_Balles()
    while 1 = 1
       cls : NbRouges = NbBalles
       select scancode
           case 38 : deb = deb - 10 : if deb < r2 then deb = r2           : ' Haut
           case 40 : deb = deb + 10 : if deb > (h-7*r2) then deb = h-7*r2 : ' Bas
       end_select
       2d_pen_width r2  : 2d_pen_color 0,0,0 : 2d_line w/2,0,w/2,h : ' Cloison
       2d_poly_from 0,0 : 2d_poly_to w,0 : 2d_poly_to w,h : 2d_poly_to 0,h : 2d_poly_to 0,0
       2d_pen_color 255,255,255 : 2d_line w/2,deb,w/2,deb+h2       : ' Ouverture
       2d_pen_width 1 : 2d_fill_color 255,255,255 : 2d_pen_color 255,255,255
       for i = 1 to NbBalles
           ' Calculer les nouvelles positions des balles
           xPosRed(i)   = xPosRed(i)   + xVitRed(i)   : yPosRed(i)   = yPosRed(i)   + yVitRed(i)
           xPosGreen(i) = xPosGreen(i) + xVitGreen(i) : yPosGreen(i) = yPosGreen(i) + yVitGreen(i)
           ' Rebondissement des balles sur les obstacles ?
           If (xPosRed(i) <= r2)   Or ((xPosRed(i) >= (W/2-r2)) and (color_pixel_red(10,xPosRed(i),yPosRed(i)) = 0)) then xVitRed(i) = 0-xVitRed(i)
           If (yPosRed(i) <= r2)   Or (yPosRed(i) >= H) Then yVitRed(i) = 0-yVitRed(i)
           If (xPosGreen(i) <= r2) Or ((xPosGreen(i) >= (W/2-r2)) and (color_pixel_red(10,xPosGreen(i),yPosGreen(i)) = 0)) then xVitGreen(i) = 0-xVitGreen(i)
           If (yPosGreen(i) <= r2) Or (yPosGreen(i) >= H) Then yVitGreen(i) = 0-yVitGreen(i)
           ' Actualiser les positions des balles
           2d_fill_color 255,0,0 : 2d_pen_color 255,0,0 : 2d_circle xPosRed(i)-r,yPosRed(i)-r,r
           2d_fill_color 0,255,0 : 2d_pen_color 0,255,0 : 2d_circle xPosGreen(i)-r,yPosGreen(i)-r,r
           if xPosRed(i) > (w/2+2*r2)  : ' Balle rouge à droite ?
              NbRouges = NbRouges + 1  : ' Oui : incrémenter
           else
              NbRouges = NbRouges - 1  : ' Non : décrémenter
           end_if
           if NbRouges >= 2*NbBalles  : ' Toutes les balles rouges à droite ?
              message "BRAVO !!!" + chr$(13) + "Tu as bien accompli la mission.": ' Félicitations
              cls : active 2 : exit_sub
           end_if
        next i
    end_while
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 8:57

Bonne idée mais j'ai un gros problème: le scancode est un système qui fonctionne très mal chez moi pour ton jeu: j'ai réussi une fois à ce que la touche "bas" soit prise en compte, le reste du temps, je peux appuyer plein de fois dessus ou rester appuyé, ça ne bouge pas... c'est génant alors que ça devrait être très réactif pour ce type de jeu.

Bref, le trou ne bouge pas et du coup, je ne peux pas jouer (j'ai vérifié le scancode des touches de mon clavier et il correspond bien aux valeurs de ton code).

J'essayerais ce soir le système bignonosien, je ne l'ai plus en tête mais je crois que pour la gestion des touches ça marchait mieux (mémorisation de la touche par événement lors de l'appui)
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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 9:57

Salut à tous,

Chez moi ça marche bien, mais c'est très rapide.

En diminuant la vitesse, c'est un peu plus facile Very Happy
Oui, je sais, c'est de la triche Embarassed

A+
Revenir en haut Aller en bas
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 11:59

Jicehel et Jean Claude, merci pour vos retours.

Jicehel a écrit:
J'essayerais ce soir le système bignonosien,

Fais-toi plaisir et donne-nous une autre manière de scruter le clavier.
A-propos, Bignono si jamais tu passes par ici, fais-nous un petit coucou.

Jean Claude a écrit:
En diminuant la vitesse, c'est un peu plus facile  
Oui, je sais, c'est de la triche  

Non, ce n’est pas de la triche ! C’est juste une adaptation pour chacun selon son PC, sa dextérité, son temps de réponse, etc.
D’ailleurs, les vitesses des balles sont déterminées aléatoirement par le programme en lignes 37 et 39 que l’on peut modifier à son goût.
Tous les paramètres du jeu peuvent être modifiés.

Et si on corse le jeu en imposant que   toutes les balles rouges soient  à droite ET toutes les vertes à gauche ?
Bon, faites ce que vous voulez.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: re    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 12:36

Je constate qu' il n' y a pas que le martien qui s' amuse !
lol!

cheers Bravo Papydall, encore un joli casse-tête...
Revenir en haut Aller en bas
jjn4

jjn4


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: +++    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 13:53

Ouaaaah, quel casse-tête !
affraid alien Mad
Je vois que Papydall est pris
à son tour par la playomanie...
Laughing alien Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 15:12

ça donne le vertige !:



 Faire passer toutes les balles rouges dans la partie droite Bonnes10
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 17:42

Merci Papydall !

Pas facile sans diminuer la vitesse !  scratch
La fluidité est excellente.

C'est fou ce que l'on peut faire avec quelques lignes de code !

Quant au code, c'est du Papydall !
Facile à comprendre et très détaillé.

 Faire passer toutes les balles rouges dans la partie droite 16190110
Revenir en haut Aller en bas
RMont




Nombre de messages : 233
Age : 82
Localisation : charente maritime
Date d'inscription : 29/12/2008

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 18:15


bonjour a tous
chez moi ,cela fonctionne tres bien.jeu assez difficile :c'est tres rapide
merci papydall pour tes lignes de rem
Revenir en haut Aller en bas
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 18:50

Merci Marc37 et RMont pour vos appréciations.
Marc37 a écrit:
La fluidité est excellente.

J’étais moi aussi surpris d’une telle fluidité.

RMont a écrit:
chez moi ,cela fonctionne tres bien.jeu assez difficile :c'est tres rapide
merci papydall pour tes lignes de rem

La vitesse est inversement proportionnelle au nombre de balles.
Plus le nombre de balles augmente, plus la vitesse diminue (ce qui permet de mieux gérer tout ce beau monde de balles) et plus la difficulté de les faire passer à droite augmente).
On se trouve devant un compromis : diminuer la vitesse des balles ou augmenter la facilité de les gérer.
Mais comme toutes les variables peuvent être modifiées, chacun peut les adapter à son niveau.
Essayez avec 50 ou plus comme nombre de balles.

Amusez-vous bien !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: re    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 18:58

cheers
 Faire passer toutes les balles rouges dans la partie droite Captur73
Revenir en haut Aller en bas
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 22:32

Et si tu essayes avec une dizaine de balles ?
En tous cas BRAVO !


 Faire passer toutes les balles rouges dans la partie droite Sans_t22
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyLun 6 Mar 2017 - 23:46

Joli papydall !

mais... t'as pas sans balles ?
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: re    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 0:30

J' ai réussi avec 5,10 mais à 20 j' ai abandonné...
Wink
Revenir en haut Aller en bas
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 0:37

@JL35
Tu me demandes cent balles et un Mars ?
Ok ! Je te les envoie par colis postal dès que je reçois de toi 100 € pour frais d'envoi. tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 0:54

15 balles. Qui dit mieux ?:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: re    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 3:08

Tu pourrais peut-être ajouter un spin pour choisir 
le nombre de balles...non ?...
Wink
Revenir en haut Aller en bas
papydall

papydall


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 16:35

@Jicehel et ceux qui ont des dysfonctionnements avec SCANCODE
Utiliser KEY_DOWN_CODE au lieu de SCANCODE en ligne 66.

Code:

select key_down_code


Ça devrait bien marcher !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
silverman

silverman


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptyMar 7 Mar 2017 - 20:22

@papydall
Tu devrais synchroniser le temps d'éxécution de la boucle principale afin qu'elle s'éxécute à la même vitesse, quelque soit le pc, ce serait plus équitable.
Une démo:
Code:

' initialise les variables de synchronisation
SYNC_ON()                                :' <----- sub en action

' variables pour la démo
dim debut_chrono,cpt_image,i,temps,somme_images
'

print "5 tests:":print

temps=number_ticks
for i=1 to 5  :' 5 tests
   cpt_image=0 : debut_chrono=number_ticks+1000
   SYNC_START(50)                      :' <----- sub en action(50=nb d'image par seconde souhaité)
   repeat
      '
      '
      repeat     :' on simule du code à synchroniser
         show 0
      until 1=1
      '
      '
      cpt_image=cpt_image+1
      SYNC()                             :' <----- sub en action
   until number_ticks>=debut_chrono
'   print "NUMBER_TICKS : ",cpt_image," images/seconde           PERF_TIMER : ",perf_timer_fps%," images/seconde        ",perf_timer_fps_moy," = nb moyen d'images/seconde"
   print cpt_image," images/seconde"
   somme_images=somme_images+cpt_image
next i
print : print "Statistique number_ticks:"
print (number_ticks-temps)/1000," secondes écoulées"
print (1000*somme_images)/(number_ticks-temps)," = nb moyen d'images/seconde"





END
sub SYNC_START(fps)
' fps=nb d'image par seconde souhaité
   if perf_timer_start=0 and perf_timer_frequency>0               :'
      if fps>1000 then fps=1000
      perf_timer adr(perf_timer_start)                            :' mesure le temps courant et inscrit le dans 'perf_timer_start'
'      one_second=perf_timer_start+(perf_timer_frequency)          :' initialise le compteur de seconde
      trame_duration=perf_timer_frequency/fps                     :' trame_duration = temps d'affichage d'1 trame
   end_if
end_sub


sub SYNC()
if perf_timer_frequency>0
   perf_timer_start=perf_timer_start+trame_duration               :' détermine la durée d'affichage pour 1 trame
   perf_timer adr(perf_timer_end)                                 :' mesure le temps courant et inscrit le dans 'perf_timer_end'

   if perf_timer_end<perf_timer_start                             :' si le temps écoulé est strictement inférieur à la durée d'1 trame(ordinateur véloce, boucle rapide,...)
      repeat                                                      :'    on attend
         perf_timer adr(perf_timer_end)                           :'    ...
      until perf_timer_end>=perf_timer_start                      :'    jusqu'à ce que la durée de la trame soit écoulée
   else                                                           :' sinon
      repeat                                                      :'    la trame en cours est affichée mais plusieurs autres ont été perdu(ordinateur lent, boucle lourde,...)
         perf_timer_start=perf_timer_start+trame_duration         :'    on compte le nb de tramde perdue
      until perf_timer_start>perf_timer_end                       :'    jusqu'à atteindre le temps calculé, de la prochaine trame qui va s'afficher
   end_if

'   tmp_perf_fps%=tmp_perf_fps%+1                                  :' incrémente le compteur temporaire de trame
   '
'   if perf_timer_end>one_second                                   :' si 1 seconde s'est écoulé
'      perf_timer_fps%=tmp_perf_fps%                                  :' rempli le compteur de trame
'      perf_timer_fps_moy=100*(tmp_perf_fps%/(1+((perf_timer_end-one_second)/perf_timer_frequency)))
'      perf_timer_fps_moy=int(perf_timer_fps_moy)/100              :' rempli un autre compteur de trame, mais moyenné
'      tmp_perf_fps%=0                                             :' raz le compteur temporaire de trame
'      one_second=perf_timer_end+perf_timer_frequency              :' incrémente le compteur de la prochaine seconde
'   end_if
   '
end_if
end_sub

sub SYNC_ON()
   ' https://msdn.microsoft.com/fr-fr/library/windows/desktop/dn553408%28v=vs.85%29.aspx

   ' fonctions/commandes de comptage haute résolution du kernel32
   dim kernel32%
   kernel32%=3
   LIBRARY kernel32%,"kernel32"
   '
   function "perf_timer_exist","QueryPerformanceCounter",kernel32%,"I","stdcall"
   ' ex.: null%=perf_timer_exist(adr(float))
   '
   command "perf_timer","QueryPerformanceCounter",kernel32%,"I","stdcall"
   ' ex.: perf_timer adr(float)
   '
   command "perf_frequency","QueryPerformanceFrequency",kernel32%,"I","stdcall"
   ' ex.: perf_frequency adr(float)



   ' le résultat du compteur et de la fréquence doivent être stocké dans une variable de type "float"
   dim perf_timer_frequency,perf_timer_start,perf_timer_end
   dim trame_duration
'   dim one_second,perf_timer_fps_moy
'   dim tmp_perf_fps%,perf_timer_fps%

   ' vérifie que le compteur haute résolution existe
   if perf_timer_exist(adr(perf_timer_start))<>0
      perf_frequency adr(perf_timer_frequency)   :' fréquence du compteur haute résolution
   else
      perf_timer_frequency=0
      ' print "compteur haute résolution inexistant."
   end_if
  
   perf_timer_start=0
end_sub
Pas facile ton petit jeu! What a Face
Revenir en haut Aller en bas
Minibug

Minibug


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

 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite EmptySam 11 Mar 2017 - 17:50

Complètement FOU ce jeu !

Et en plus avec seulement une centaine lignes. et une fluidité à faire pâlir les joueurs de WOW !
Chapeau bas Papydall !

J'y retourne, je crois que je deviens accro... affraid
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





 Faire passer toutes les balles rouges dans la partie droite Empty
MessageSujet: Re: Faire passer toutes les balles rouges dans la partie droite    Faire passer toutes les balles rouges dans la partie droite Empty

Revenir en haut Aller en bas
 
Faire passer toutes les balles rouges dans la partie droite
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Je n'arrive pas à faire passer mon string par ma DLL
» Ce qui va se passer dans les 6 prochains mois
» Un FORM pas très en forme
» Faire apparaitre fichier$ dans SAVE_DIALOG
» Faire FLOOD dans un polygone non croisé

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: