Question sur les define - C++ - Programmation
Marsh Posté le 31-05-2005 à 12:53:07
Salut,
Plutôt que de passer par des defines, tu devrais lier tes touches à des actions.
Par exemple, tu as un enum pour chacun d'eux, et tu les lies par une map.
Marsh Posté le 31-05-2005 à 15:21:28
Avec Qt, il n'y aurait pas aussi des possibilités similaires ?
Marsh Posté le 31-05-2005 à 15:57:39
ouaip
déjà merci pour vos reponses
ensuite le probleme cest qu'il s'agit de coder ceci en java. (C'est du preprocess donc les includes sont utils )
Et donc je crois que ca empeche de faire ceci :
"Plutôt que de passer par des defines, tu devrais lier tes touches à des actions.
Par exemple, tu as un enum pour chacun d'eux, et tu les lies par une map." Tu parlais de pointeur sur fonction non ?
Si vous avez d'autres idées "your welcome" !
Marsh Posté le 31-05-2005 à 16:40:23
Si tu veux du Java, c'est pas la bonne sous-cat...
Pour te répondre, je ne parlais pas de pointeurs sur fonctions, bien que ce soit une solution...
Je pensais plutôt à quelque chose du type
Code :
|
Marsh Posté le 31-05-2005 à 18:06:52
il y a même une solution en temps constant,
(peut être au prix d'un re-étalonage des codes)
Code :
|
ensuite quelque part :
Code :
|
et autre part
Code :
|
Marsh Posté le 01-06-2005 à 23:44:29
Peux-tu me dire ce que tu apelles une "solution en temps constant" ?
D'après ce que je vois de ton code, tu as remplacé 2 opérations par des defines (pour rester C++ on peut en faire des fonctions inline ?). Pourquoi ?
Marsh Posté le 02-06-2005 à 03:44:29
en général, le temps d'accès de std::map n'est pas constant,
certaines clés sont retrouvées plus rapidement que d'autres,
ce qui n'est peut être pas souhaitable pour un jeu.
Après pour le défine... le topic était déjà tellement absurde.
Marsh Posté le 02-06-2005 à 08:15:26
fra0 a écrit : en général, le temps d'accès de std::map n'est pas constant, |
source ?
Marsh Posté le 02-06-2005 à 15:42:37
url ? (des tree.cc, j'en ai un paquetà
Marsh Posté le 02-06-2005 à 15:45:39
Code :
|
Marsh Posté le 03-06-2005 à 23:07:50
En quoi remplacer par des defines est-il meilleur ? A la compilation, l'appel de la macro est remplacé par son code, non ? Si c'est le cas, il ne devrait pas y avoir d'écart de performance ?
J'espère pas être trop lourd, mais j'aimerais vraiment comprendre ça...
Marsh Posté le 04-06-2005 à 01:32:50
// parfois les define sont plus lents, ce bout de code (mauvais)
Code :
|
// s'exécute en 10ms lorsque
Code :
|
// et plus de 4 mois* lorsque
Code :
|
ça devrait te mettre sur la piste
Marsh Posté le 04-06-2005 à 21:10:34
Maintenant que c'est le week-end, je vais pouvoir faire quelque tests... Merci des pistes.
Marsh Posté le 04-06-2005 à 21:56:46
D'où ma question sur l'utilisation de fonctions inline.
Je vais essayer aussi avec ça...
Mais sans essayer, je ne comprends toujours pô Même après, j'ai bien peur de ne pas en comprendre l'origine...
Marsh Posté le 31-05-2005 à 12:15:12
Bonjour à tous!
J'ai une petite question sur les defines:
Comme dans tous les jeux lorsque l'on presse sur une touche, on récupère le code de la touche appuyée.
J'ai donc créé un define pour chaque action
exemple :
La condition est vérifié si le code touche est égale a 35. Jusque la aucun problème mais j'essaie d être le plus clair possible.
On a donc pour les téléphones portables
#define KUP2 Canvas.KEY_NUM2
#define KUP3 Canvas.KEY_NUM3.
Pour des raisons d'ergonomie et de facilité on refait un define : #define PAUSE KUP2
Et donc le code ressemble a ceci (en incluant les define) :
Si le joueur appuie sur la touche 2 alors la condition est vérifiée.
Maintenant mon problème est le suivant : je veux que deux touches aient la meme action.
J'aimerais pouvoir faire
et que si le joueur appuie sur la touche 2 cela vérifie la condition du "if". Mais forcément cela n'est pas possible. La solution
n'est pas une solution au final car je dois pouvoir rajouter autant de touche possible sur une meme action
SI quelqu'un aurait une idée )
merci de m'avoir lu et bonne journée
Message édité par bonyama le 31-05-2005 à 12:32:49