CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

Enigme,Charade,....

Aurontheknight
Aurontheknight
Niveau 10
05 août 2004 à 14:28:18

:salut: :cool: man ! ^^

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:15:30

Re

Pete, c´est beaucoup plus pénible de programmer en utilisant les API, surtout pour écrire dans un fichier . INI
Fais-le en VB, je t´en conjure, tu mettras 10 x moins de temps à l´écrire qu´en invoquant les API
Si tu veux de l´aide pour savoir comment mettre à jour un fichier . INI ( insérer, mettre à jour, supprimer), n´hésite pas à demander.

Quant au Timer, c´est clair qu´il n´est pas assez précis.
Mais tout dépend des besoins.
Mais les application de gestion ne sont pas des processus de surveillance d´interruptions de contrôles de trajectoire, tu n´as pas besoin de piloter Ariane 5, ou bien?
Si c´est de l´art pour l´art, d´accord.

Pete
Pete
Niveau 10
05 août 2004 à 15:20:32

Jopfleger Posté le 05 août 2004 à 15:15:30
Re

Pete, c´est beaucoup plus pénible de programmer en utilisant les API, surtout pour écrire dans un fichier . INI
Fais-le en VB, je t´en conjure, tu mettras 10 x moins de temps à l´écrire qu´en invoquant les API
Si tu veux de l´aide pour savoir comment mettre à jour un fichier . INI ( insérer, mettre à jour, supprimer), n´hésite pas à demander.

:d) Bah ok alors...

Quant au Timer, c´est clair qu´il n´est pas assez précis.
Mais tout dépend des besoins.
Mais les application de gestion ne sont pas des processus de surveillance d´interruptions de contrôles de trajectoire, tu n´as pas besoin de piloter Ariane 5, ou bien?
Si c´est de l´art pour l´art, d´accord.

:d) Ben, c´est pour afficher le temps de course, donc s´il y a un décalage ça le fait pas trop...

Pete
Pete
Niveau 10
05 août 2004 à 15:21:30

Mais bon j´ai regardé ça, ça m´a pas l´air compliqué à gérer:

´ Déclaration des fonctions API
´ Pour lire dans un fichier INI
Private Declare Function GetPrivateProfileString _
Lib " kernel32" Alias " GetPrivateProfileStringA" _
( ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName _
As String) As Long

´ Pour enregistrer dans un fichier INI
Private Declare Function WritePrivateProfileString Lib " kernel32" _
Alias " WritePrivateProfileStringA" ( ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Public Function LireIni(stSection As String, stKey As String, stFichier As String) As String
´ Lecture d´une valeur dans un fichier INI
´ stSection est le la partie designée entre crochets ( [option] par exemple)
´ stKey est le nom de la clé à récupérer ( COULEUR=... par exemple)
Dim stBuf As String, lgBuf As Long, lgRep As Long
´ Mise en place du buffer de lecture
stBuf = Space$(255)
lgBuf = 255
lgRep = GetPrivateProfileString(stSection, stKey, " ", stBuf, lgBuf, stFichier)
LireIni = Left$(stBuf, lgRep)
End Function

Public Sub EcrireIni(stSection As String, stKey As String, stValeur As String, stFichier As String)
´ Lecture d´une valeur dans un fichier INI
´ stSection est le la partie designée entre crochets ( [option] par exemple)
´ stKey est le nom de la clé à récupérer ( COULEUR=... par exemple)
´ stValeur est la valeur à stocker
´ stFichier est le fichier à manipuler
WritePrivateProfileString stSection, stKey, stValeur, stFichier
End Sub

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:24:28

Ce n´est pas l´invocation des API qui est compliqué, c´est le remplissage des paramètres à chaque fois, ex: stSection As String, stKey As String, stValeur As String, stFichier As String

Pour utiliser les interruptions Time à même le métal:
Declare Function timeGetTime Lib " winmm.dll" Alias " timeGetTime" ( ) As Long
Declare Function GetTickCount Lib " kernel32" Alias " GetTickCount" ( ) As Long

Les plus simples sont timeGetTime et GetTickCount. Ces deux fonctions sans argument, retourne le nombre de millisecondes écoulées depuis le démarrage du système d´exploitation. Pour utiliser la fonction timeGetTime, vous devez ajoutez la librairie winmm.lib au projet ( sous Visual). L´inclusion de mmsystem.h ne semble pas obligatoire.
Avec ces fonctions, le contenu de la boucle de jeu est très simple. A l´initialisation, on obtient le temps écoulé depuis le démarrage de l´OS. Puis dans la boucle:

le compteur de performance

Il existe aussi une méthode à peine plus compliqué et qui permet une précision plus grande que le milliseconde . Elle utilise le compteur de performance qui est un compteur matériel situé dans les microprocesseurs. Ce compteur à une fréquence qui rappelons le, correspond à un nombre de cycle d´horloge par seconde. A l´initialisation, on obtient la fréquence du compteur avec la fonction QueryPerformanceFrequency. On obtient également le nombre de cycles écoulé depuis un moment X avec la fonction QueryPerformanceCounter et on fera de même dans la boucle de jeu. Puis dans la boucle, on ne compare plus le nombre de millisecondes écoulées mais le nombre de cycle d´horloge écoulé. Pour afficher 60 images par secondes on a auparavant divisé la fréquence de l´horloge par 60. Les deux fonctions se présentent ainsi:

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency ) ;
BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount);

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:27:13

Mais je croyais que le PC était relié à un chronomètre électronique et que c´était celui-ci qui envoyait le champ horodate au PC qui n´avait qu´à le récupérer.

Pete
Pete
Niveau 10
05 août 2004 à 15:28:49

:non: le PC est relié en réseau aux fichiers texte du même format que je t´ai envoyé la dernière fois, c´est tout.

Pete
Pete
Niveau 10
05 août 2004 à 15:29:59

Jopfleger Posté le 05 août 2004 à 15:24:28
Ce n´est pas l´invocation des API qui est compliqué, c´est le remplissage des paramètres à chaque fois, ex: stSection As String, stKey As String, stValeur As String, stFichier As String

Je vois pas ce qu´il y a de compliqué. J´ai pas encore testé, mais ça me paraît plutôt simple et au moins ça permet d´avoir un fichier ini bien structuré comme il faut, et qu´on peut facilement configurer en l´ouvrant avec n´importe quel éditeur de texte.

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:30:00

Donc tu prends bien l´horodate dans ce fichier, non?

Pete
Pete
Niveau 10
05 août 2004 à 15:31:22

Horodate ?

Les fichiers donnent les heures d´arrivée de chaque concurrent, mais pas le temps de course.

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:33:53

Je vois pas ce qu´il y a de compliqué. J´ai pas encore testé, mais ça me paraît plutôt simple et au moins ça permet d´avoir un fichier ini bien structuré comme il faut, et qu´on peut facilement configurer en l´ouvrant avec n´importe quel éditeur de texte.
Ce n´est pas le fait d´utiliser des API qui vont t´aider à structurer ton fichier INI.
Tu dois le faire correctement dans tous les cas.
Mais lorsque pour chaque écriture, au lieu de faire :
Print #1, MonRenreg
tu devras invoquer:
EcrireIni(MaSection , MaCléStructurante, MonTexte, MonNomDeFichier) tu me diras ensuite csi c´est plsu simple

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:36:17

Horodate ?

Les fichiers donnent les heures d´arrivée de chaque concurrent, mais pas le temps de course.
Oi, mais par le dossard tu relies la valeur d´arrivée à la valeur de départ, non?
Dans ce même fichier ( ou un autre), tu as aussi les valeurs de départ de chaque dossard ou du moins tu as un fichier avec la course, les dossards et l´heure réelle du départ soit de chacun soit collective.
A quoi sert alors de relever le timer du PC?

Pete
Pete
Niveau 10
05 août 2004 à 15:39:21

Ce n´est pas le fait d´utiliser des API qui vont t´aider à structurer ton fichier INI.
Tu dois le faire correctement dans tous les cas.
Mais lorsque pour chaque écriture, au lieu de faire :
Print #1, MonRenreg
tu devras invoquer:
EcrireIni(MaSection , MaCléStructurante, MonTexte, MonNomDeFichier) tu me diras ensuite csi c´est plsu simple

Bah oui c´est comme ça que je le voyais. C´est simple à comprendre je trouve.

Pete
Pete
Niveau 10
05 août 2004 à 15:41:22

Jopfleger Posté le 05 août 2004 à 15:36:17
Oi, mais par le dossard tu relies la valeur d´arrivée à la valeur de départ, non?
Dans ce même fichier ( ou un autre), tu as aussi les valeurs de départ de chaque dossard ou du moins tu as un fichier avec la course, les dossards et l´heure réelle du départ soit de chacun soit collective.
A quoi sert alors de relever le timer du PC?

Oui il y a un temps de départ à paramètrer.
Mais j´ai besoin d´un timer ( précis) pour lancer un chrono qui donne le temps de course écoulé. Qu´est-ce que tu comprends pas là-dedans ?

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:43:13

Mais j´ai besoin d´un timer ( précis) pour lancer un chrono qui donne le temps de course écoulé.
Pour LANCER un chrono?

Pete
Pete
Niveau 10
05 août 2004 à 15:45:20

Oui le chrono ne sera pas forcément affiché sur mon programme depuis le départ, il faut être capable de le lancer à n´importe quel moment, ne spécifier l´heure à laquelle il doit partir.

( lancer dans le sens démarrer, pas jeter en l´air...)

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:48:29

Je n´étais pas surpris du mot Lancer, mais je pensais que le seul chrono valable est l´électronique, et celui-ci étant raccordé au PC il lui fournit tout ce qui est nécessaire au calcul des temsp des concurrents
- dossard, top départ ( paramétrée, ou chronométrée)
- dossard + horodate d´arrivée fournie par le chrono ( horodate = timestamp)

Pete
Pete
Niveau 10
05 août 2004 à 15:49:30

Non je suis pas relié au chrono.

jopfleger
jopfleger
Niveau 10
05 août 2004 à 15:50:38

Le chrono est le PC directement?

Pete
Pete
Niveau 10
05 août 2004 à 15:53:50

Non c´est un appareil auquel je n´ai pas accès à partir du PC.

Sujet fermé pour la raison suivante : Ce sujet est archivé et se poursuit sur le nouveau sujet : http://www.jeuxvideo.com/forums/42-3030-59624398-1-0-1-0-0.htm
La vidéo du moment