IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

[LG]Pb de boucles


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [LG]Pb de boucles
    Salut !!!

    Voila je dois faire un jeu en TP7, or je débute en programmation, et le jeu nécessite d'executer plusieures boucles en meme temps. C'est un jeu de tir à l'arc et je dois en même temps faire défiler les ballons, et quand l'utilisateur tire une flèche , il faudrait que les ballons continuent d'avancer.... ce qui n'est pas le cas.

    Voili volà merci beaucoup si vous avez une solution.
    zazou

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Il y a plusieurs solutions à ton problème :

    1. Tu t'arranges pour utiliser une boucle générale, qui répartira les tâches de manières égale, et qui s'arrangera pour faire défiler les ballons et tirer une flèche à tour de rôle.

    2. Tu utilises un système qui gère les tâches en arrière-plan. Pour cela, l'horloge interne du PC est plutôt pratique, et en se "greffant" dessus;, on arrive souvent à faire ce qu'on veut.

    Pour ça, il te faut détourner soit l'interruption 1Ch, soit la 8h (plus complexe). Tu peux trouver des unités toutes prêtes pour ça (dont la mienne dans les contribs de developpez.com... )

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Membre averti Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Points : 358
    Points
    358
    Par défaut
    dis moi mon hdd , c est le principe des evenement sa ? non ?
    6*8 =42

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup de m'avoir répondu , tes contributions ont l'air sympa mais un peu trop compliquées pour le niveau de jeu que je suis censée créer.
    Par contre je retiens l'idée numero 1 et vais essayer de travailler dessus.

    Apluche et encore merci!

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Les évènements, c'est beaucoup plus complexe : il y a une notion de "message" ( chaque évènement envoie un message à un gestionnaire de messages qui se chargent de les r&épartir entres les différents programmes ) et aussi une notion d'horloge ( les messages sont envoyés toutes les x millisecondes ). En fait, ça dépend du système d'exploitation... Certains utilisent les deux notions et d'autres qu'une seule ....
    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    Si vous avez besoin de l'unité que propose Hdd34 : http://pascail.developpez.com/utilitaires/

    La boucle général, est la chose la plus simple a faire, et celle qui marche de manière "correcte", et surtout, la plus adaptée.
    Mais, si il y a énormément de chose dans ta boucle, ta fléche risque d'avancer au ralenti, car il faut quand même laisser le temps au pc d'éxecuter toutes les instructions, et surtout, au processeur, qui ne sait faire qu'une chose a la fois ...

    Enfin, bon courage.

    ++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  7. #7
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Un gestion évènementielle synchrone ? C'est original... En théorie, on envoie les évènements quand on est en mesure de les envoyer, on ne temporise pas. Ca doit ralentir le système sinon...

    Bon, sinon, l'utilisation d'un timer n'est pas une programmation évènementielle.

    Le plus dur pour toi va être la répartition à temps égal de chaque tâche. Si jamais tu as besoin d'un coup de pouce...

    Sinon, la mise en place d'un gestionnaire ISR (timer) est relativement simple...

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    Sur un pc plus ou moins rapide, il n'y devrais pas y avoir de problème, si tu fait des choses raisonables, qui ne prénent pas de temps en temps normal ...

    Moi, j'dit que ça devrait tourner rond.

    ++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut merchi bcp
    Merci a tous!
    j'ai a peu près reussi en faisant alterner les deux taches.
    meme si c un peu lent c deja mieux car jarrive a tirer d fleche en mem temps ke ballons!

  10. #10
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bon, alors dans ce cas...

    Sinon, dans l'aide de TP7, il y a à la rubrique SetIntVec un exemple de timer ISR.
    C'est prêt à l'emploi !

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. [langage] if et boucle { ..}
    Par kacedda dans le forum Langage
    Réponses: 15
    Dernier message: 28/04/2003, 17h25
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 10h47
  4. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 09h38
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo