voilà
ce code fonctionne
Merci à vous encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Uint32 interval; static Uint32 callback(Uint32 interval) { return interval; } SDL_SetTimer(1000, callback);
voilà
ce code fonctionne
Merci à vous encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Uint32 interval; static Uint32 callback(Uint32 interval) { return interval; } SDL_SetTimer(1000, callback);
C'etais une deduction à l'arrache (Je pensais que c'etais l'erreur du compilateur due au fait que la fonction ne retournait rien, encore une fois je vais trop vite en besogne...)Envoyé par fearyourself
Content que ton problème soit réglé eldacar, j'ai pas essayé de compiler le timer d'avant, mais je peux toujours essayer demain si ça t'interesse.
Non, pas besoin merci, j'ai intégré mon timer à mon programme, ça fonctionne comme je le voulais, c'est parfait.Envoyé par loka
Donc merci à Laurent Gomila, Loka, fearyourself pour votre aide.
On y est arrivé pour finir, mais c'était vraiment tordu ce problème
A mon avis ton problème n'en est pas vraiment un. Je pense que t'avais simplement un problème de déclaration. Je suspecte que si tu enlèves ta variable globale et le mot clé static, ton code fonctionnera encoreEnvoyé par Eldacar
Jc
Si jamais c'est pas le cas, je serais d'accord pour dire que c'est tordu
Effectivement c'est pas normal du tout
Je soupçonne aussi que l'erreur se trouvait ailleurs.
effectivement, ça fonctionne encoreJe suspecte que si tu enlèves ta variable globale et le mot clé static, ton code fonctionnera encore
J'avoue que je n'ai pas saisi pourquoi ça compilait pas, j'ai seulement saisi quel code compile.
A la recherche de l'erreur perdue
Bon maintenant ça fonctionne c'est le principal... le problème serais que ça te revienne dessus un jour où tu ajouterais quelquechose...
C'est clairEnvoyé par loka
Je ne suis pas d'accord, en plus tu donnes la raison de mon désaccord :Bon maintenant ça fonctionne c'est le principal...
Tu passeras des heures sur ton "nouveau" code pour trouver l'erreur et en fait le problème vient de l'ancien code... Et tu seras comme ceci: oule problème serais que ça te revienne dessus un jour où tu ajouterais quelquechose...
Jc
oui c'est sur, mais je sais comment construire ce code pour que la fonction callback soit acceptée, donc je pense que c'est OK malgré que l'erreur me soit inconnue.
La fonction de Callback DOIT renvoyer une valeur (Uint32) pour qu'elle continue à être appelée.
Dans tous les codes postés avant celui qui fonctionne, aucune valeur Uint32 n'était renvoyée.
Je pense que c'est la source de l'erreur (et sans static, ça devrait aussi passer).
Tu n'aurais pas loupé la seconde page de ce topic ?Envoyé par florent28
me donne toujours
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 static Uint32 ticktock(Uint32 interval) { int ticks = 0; ++ticks; return(ticks); } // appelé dans une fonction SDL_AddTimer(44, &ticktock);
game_engine.cpp:193: erreur: invalid conversion from ‘Uint32 (*)(Uint32)’ to ‘Uint32 (*)(Uint32, void*)’effectivement, ça fonctionne encoreJe suspecte que si tu enlèves ta variable globale et le mot clé static, ton code fonctionnera encore
La valeur que tu retournes est le nouveau délai entre les timers, donc pour un timer régulier, tu as tout intérêt à retourner le timer de départ.
Et la fonction demande de renvoyer une valeur Uint32, à voir si renvoyer une simple valeur int (même si je sais que Uint32 est un unsigned int) suffit.
Bonjour a Tous,
Selon moi, l'erreur réside dans la façon dont le pointeur de fonction est passé, car les premiers exemples qui échouaient étaient passés de la façon suivante :
SDL_TimerQQchose(10000, &RefreshServer)
Remarquer la sperluette(&) qui doit donner l'adresse du pointeur, car je crois que, comme un tableau en C/C++, 'RefreshServer' est un pointeur de fonction en tant que tel... sans les parenthèses.
MikE
Non c'est faux. Si tu insinues que
est différent de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SDL_TimerQQchose(10000, &RefreshServer)
alors non ce n'est pas vrai. Dans ce cas précis, si RefreshServer est une fonction alors avec ou sans le &, c'est la même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SDL_TimerQQchose(10000, RefreshServer)
Jc
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager