cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
17 août 2003 à 16:05
wiaeke
Messages postés38Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention 9 avril 2005
-
7 déc. 2004 à 20:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
wiaeke
Messages postés38Date d'inscriptionmercredi 14 janvier 2004StatutMembreDernière intervention 9 avril 2005 7 déc. 2004 à 20:36
le code rest(x) ;
fais koi
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 31 août 2003 à 17:47
voilà, j'allais le dire, et sache que ce n'est pas portable (forcément, pusique c api windows), mais tu peux utiliser une fonction de type GetTime portable, peut importe laquelle.
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 20 août 2003 à 20:49
Pour pouvoir utiliser GetTickCount(), il faut inclure windows.h
cs_mat74
Messages postés241Date d'inscriptiondimanche 10 août 2003StatutMembreDernière intervention16 juin 2010 20 août 2003 à 12:16
Kirua jai 1 pb jai taper se que tu avai di mai sa ne marche pa
il me met => error C2065: 'GetTickCount' : undeclared identifier
ce nest pa 1 pb de linkage ques ce qui va pa
merci @+
axanet
Messages postés8Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention19 novembre 2003 19 août 2003 à 15:42
Salut, je n'ai pas trouve le fichier allegro.h pour pouvoir exécuter ton programme, merci de m'indiquer l'emplacement du fichier ou de me l'envoyer à : macolombe1@yahoo.fr
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 19 août 2003 à 01:23
En C++, t'as une classe spéciale de la STL (librairie standard), list, qui gère les listes.
exemple :
#include <list>
using namespace std;
list liste_int;
cs_mat74
Messages postés241Date d'inscriptiondimanche 10 août 2003StatutMembreDernière intervention16 juin 2010 18 août 2003 à 21:35
merci pr les conseils et je vai essayer de mettre 1 timer ds mon prochain jeu et AMK si tu peu preciser pour les missiles sa serai cool.
sa maiderai bien
qd je programai en basic jutilisai une liste de structure es que sa peu marcher en c++.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 août 2003 à 19:56
arf j'ai oublié de préciser: dans ta fonction de dessin, action clavier etc..., suffit d'utiliser soit:
Timer timer;
if(timer.IlEstTemps()) //pr effectuer une action si min. DELAI ms sont passées. soit:
while(!timer.IlEstTemps()) //pr attendre que ce délai soit passé (mais je vois pas l'intérêt, c mieux d'utiliser un Sleep())
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 18 août 2003 à 19:53
eh c bon le timer c vite fait hein ;-) je t'explique:
tu as une constante qui indique en millisecondes (ms) le temps entre deux mouvements (ATTENTION pas le tps entre deux images, mais bien entre deux MOUVEMENTS d'avion etc), et une fonction (c encore mieux si tu l'intègres dans une mini-class qui ressemble à ceci:)
bool IlEstTemps()
{
//les actions ne sont effectuées que tous les DELAI ms (environ)
//càd pas avant, et donc forcément un peu après.
int actuel = GetTickCount(); //remplacer par une fonction portable !!
if((actuel - dernier_temps) >= DELAI)
{
dernier_temps = actuel;
return true;
}
else
return false;
}
dans dernier_temps tu as tjs le dernier temps sauvegardé. en classe ça donne ça:
class Timer
{
public:
Timer();
bool IlEstTemps();
int DELAI;
private:
int dernier_temps;
};
et dans le constructeur tu initialises DELAI. remarque que j'avais dis que c t une constante, en fait c à toi de voir, c pas obligé :-)
cs_AmK
Messages postés368Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention27 janvier 20101 18 août 2003 à 19:21
hey ça ressemble au truc qu'on a fait (lothar,osmek) sauf que le notre c'etait 1 joueur bon 2 trucs : pour l'explosion si il affiche directement le dernier bmp c'est normal tu n'as pas du mettre un temps d'arret entre les differentes etapes d'explosion et comme le pc affiche tout a la vitesse de l'eclair donc tu as l'impression qu'il t'affiche le dernier seulement donc un petit rest(50); par exemple entre chaque étape ...
deuxiemement tu dois mettre un timer sinon ça va merder chez des gens qui n'ont pas un pc puissant comme funto :), si tu as besoin d'aide sur les timers va sur notre site ya un tut d'osmek , pour les raffales faut que je regarde le code parceque j'avais pas mal galeré pour ça ....
bonne continuation...
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 18 août 2003 à 00:41
T'as programmé le jeu sans timer je suppose.....:(
L'exécution est trop lente sur mon ordi, c'est dommage...
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 17 août 2003 à 16:05
c sympa comme jeu :-)
une précision un peu rien a voir avec le code, ne mets pas les fichier .obj dans ton zip, ce sont les fichiers intermédiaires créés apr le compilateur, qui après osnt liés par le lieur pour donner l'exe final, ce sont des gros fichiers inutiles dans le zip en gros :-)
bravo pr ton jeu ;-)
7 déc. 2004 à 20:36
fais koi
31 août 2003 à 17:47
20 août 2003 à 20:49
20 août 2003 à 12:16
il me met => error C2065: 'GetTickCount' : undeclared identifier
ce nest pa 1 pb de linkage ques ce qui va pa
merci @+
19 août 2003 à 15:42
19 août 2003 à 01:23
exemple :
#include <list>
using namespace std;
list liste_int;
Un très bon cours là-dessus : http://w3imagis.imag.fr/Membres/Xavier.Decoret/STL_TUTORIAL/
Et au lieu d'utiliser des structures, des classes et des objets ça serait mieux, mais enfin bon...
18 août 2003 à 21:35
sa maiderai bien
qd je programai en basic jutilisai une liste de structure es que sa peu marcher en c++.
18 août 2003 à 19:56
Timer timer;
if(timer.IlEstTemps()) //pr effectuer une action si min. DELAI ms sont passées. soit:
while(!timer.IlEstTemps()) //pr attendre que ce délai soit passé (mais je vois pas l'intérêt, c mieux d'utiliser un Sleep())
18 août 2003 à 19:53
tu as une constante qui indique en millisecondes (ms) le temps entre deux mouvements (ATTENTION pas le tps entre deux images, mais bien entre deux MOUVEMENTS d'avion etc), et une fonction (c encore mieux si tu l'intègres dans une mini-class qui ressemble à ceci:)
bool IlEstTemps()
{
//les actions ne sont effectuées que tous les DELAI ms (environ)
//càd pas avant, et donc forcément un peu après.
int actuel = GetTickCount(); //remplacer par une fonction portable !!
if((actuel - dernier_temps) >= DELAI)
{
dernier_temps = actuel;
return true;
}
else
return false;
}
dans dernier_temps tu as tjs le dernier temps sauvegardé. en classe ça donne ça:
class Timer
{
public:
Timer();
bool IlEstTemps();
int DELAI;
private:
int dernier_temps;
};
et dans le constructeur tu initialises DELAI. remarque que j'avais dis que c t une constante, en fait c à toi de voir, c pas obligé :-)
18 août 2003 à 19:21
deuxiemement tu dois mettre un timer sinon ça va merder chez des gens qui n'ont pas un pc puissant comme funto :), si tu as besoin d'aide sur les timers va sur notre site ya un tut d'osmek , pour les raffales faut que je regarde le code parceque j'avais pas mal galeré pour ça ....
bonne continuation...
18 août 2003 à 00:41
L'exécution est trop lente sur mon ordi, c'est dommage...
17 août 2003 à 16:05
une précision un peu rien a voir avec le code, ne mets pas les fichier .obj dans ton zip, ce sont les fichiers intermédiaires créés apr le compilateur, qui après osnt liés par le lieur pour donner l'exe final, ce sont des gros fichiers inutiles dans le zip en gros :-)
bravo pr ton jeu ;-)