Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1715 connectés 

 


Dernière réponse
Sujet : [quick basic] lancer deux fonctions EN MEME TEMPS
HelloWorld tu peux essayer, si t'es motivé, de détourner l'interuption DOS du clavier. En y fouttant en "surcouche" le code nécessaire à la gestion de ta racket, celui-ci sera executé tout seul des que le mec il appuye sur une touche du clavier
c'est comme ca que l'on procedais "a l'epoque" pour gerer la souris, pour qu'elle ait un deplacement fluide
tu as un exemple
www.chez.com/pageasm/tutd/othello/othello4.htm#3
 
faire executer tes 2 fonctions en meme temps n'arrangera pas grand chose de toute facon : si ca rame avec une pour ta balle, ca va encore plus ramer avec les 2, pour la balle et la racket !
 
à mon avis, il faut chercher à optimiser un peu ton code de la racket ;)
 
et comment tu procede pour dessiner ? tu synchronise avec le retour de balayage ?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
HelloWorld tu peux essayer, si t'es motivé, de détourner l'interuption DOS du clavier. En y fouttant en "surcouche" le code nécessaire à la gestion de ta racket, celui-ci sera executé tout seul des que le mec il appuye sur une touche du clavier
c'est comme ca que l'on procedais "a l'epoque" pour gerer la souris, pour qu'elle ait un deplacement fluide
tu as un exemple
www.chez.com/pageasm/tutd/othello/othello4.htm#3
 
faire executer tes 2 fonctions en meme temps n'arrangera pas grand chose de toute facon : si ca rame avec une pour ta balle, ca va encore plus ramer avec les 2, pour la balle et la racket !
 
à mon avis, il faut chercher à optimiser un peu ton code de la racket ;)
 
et comment tu procede pour dessiner ? tu synchronise avec le retour de balayage ?
Carbon_14 Ne serait-il pas possible d'utilier un Timer pour faire bouger la balle ? En fixant un intervalle réduit (on ne peut en fait descendre à moins de 1/18,6 seconde (top d'horloge)) bien que le paramètre du Timer semble dire le contraire (sous VB3 du moins : 10 millisecondes sont en fait 65, 20 ms, 30 ms, 40 ms, 50ms aussi car c'est basé sur les tops de l'horloge).
 
Si à chaque appel du Timer la position de la balle est revue, cela serait plus "fluide". Le mouvement de souris déplace les raquettes, l'horloge fait bouger le projectile.
Si cela ne suffit pas (joueur trop rapide, ça ce complique).
---------------------------------------------
 
Au sujet de multitâche, je voulais dire que si on fait une maladresse (boucle infinie de calcul n'accèdant pas aus messages de WIndows)même sous Win95, on perd la main et l'horloge est figée. Reset indispensable.
Un "vrai" multitâche devrait donner à chaque application un peu de temps et passer au suivant à tour de rôle. Ce n'est pas à l'application de monopoliser le temps CPU de sa propre initiative. On devrait pouvoir continuer à travailler si un processus voisin tourne en rond.
Je vais essayer sous Win NT vérifier si c'est mieux.
 
Le vrai multitâche, je pense qu'il se fait sur autant de machînes que de tâches à réaliser (! Mais comme je ne suis qu'un amateur, c'est une vue de l'esprit).
minusplus soit t'as une fct° qui fait tout bouger à tour de rôle, soit tu fais deux threads. (mais alors là, bonjour l'angoisse pour les faire communiquer !)
djfm je fais un casse briques et g besoin de dune fonction ki fait bouger la raquette et dune autre pour le reste....pour linstant ca rame un peu parceque tant que la fonction qui fait bouger la raquette marche, la balle ne bouge plus.....
au fait, en VB y a les equivalents des fonctions screen?
minusplus

HelloWorld a écrit a écrit :

"Windows "grand public" n'étant pas multitâche"  
:??:  
peux tu préciser ?  
"si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné)."  
c'est pas la définition du multitache ca ? :??:




je pense qu'il a confondu multitâche et multiprocesseur
 
Les OS simulent visuellement le multitasking en attribuant des courts instants de processeur aux différents exécutables, ce qui fait que deux codes ne peuvent pas tourner exactement au même momment. Si tu as deux (ou plus) procos, c'est théoriquement possible. Le problème c'est qu'il y a le système à faire tourner aussi... donc -> choux.
 
Windows 9X ne gère qu'un proco, NT et 2K peuvent en gérer 2

HelloWorld j'oubliais ... :D
djfm : pourquoi as-tu besoin de lancer 2 fonction en meme temps ?
parseke y'a surement une autre manière de faire ... ;)
HelloWorld "Windows "grand public" n'étant pas multitâche"
:??:
peux tu préciser ?
"si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné)."
c'est pas la définition du multitache ca ? :??:
Carbon_14 Quick Basic, c'est du DOS.  
Même lancé sous Windows (ou autre), il génère un fichier EXE DOS, qui peut être lancé sous Windows (en tant que programme DOS !).
 
Pour le transcrire sous VisualBasic, il faut créer une IHM (interface Homme/Machine : feuilles, boutons, menus, ..) puis récupérer le code QB pour l'adapter (tout passe sauf les accès bas niveau, les interruptions, les écritures directes en mémoire vidéo, etc..).
 
Windows "grand public" n'étant pas multitâche, si deux versions du même programme tournent, le temps CPU leur sera attribué à tour de rôle (saucissonné).
djfm eh ba ca simplifie... t sur?
*syl* En quick basic, c'est que du séquentiel donc tu peux pas exécuter 2 fonctions en même temps
djfm je vois rien nulle part ki parle de pipe ou de fork...
djfm je suis pas sous dos...
Carbon_14 Le DOS est monotâche : une seule application tourne.
 
Sous Windows 3.1, si on ouvre deux sessions DOS (c'est très faisable sous OS/2 4 (qui d'autre que moi l'tilise ??), sous Windows faut voir), on peut lancer deux applications.
 
Si on veut faire tourner deux calculs en PARALLELE sous DOS, cela m'étonnerait que ce soit possible.
rufo si t'as besoin de faire communiquer le père et le fils ensemble, tu utilise un tube, créé via la fonction pipe()
rufo si t'es sous unix, alors tu fais un fork() et tu lances dans le processus père et le processus fils la même fonction
je sais pas sous windows, fork() existe, mais je crois que oui...
djfm orazur?t le meme ke celui de or-azur.fr.st?
enfin... ca mavance pa bocou
orazur alors tu vois AUCUNE IDEE etant donne que je fais plutot du c moa =)
 
 
--------\ /----------
-------(   )-----------
--------/\-----------------
 
the real shadok
djfm tt est ds le titre,comment?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)