Bonsoir,

Je suis sur un projet de jeu de stratégie et je m'amuse un peu en essayant de déplacer la caméra autour du plateau de jeu, mais j'ai un petit soucis dont voici le détail.
Le jeu se déroule sur un damier où figurent 20 personnages (20 modèles 3ds je précise parce que je pense que la taille que tout ça prend peut être la raison de mon problème). A un moment donné, je fais tourner le damier (la caméra en fait) pour faire jouer l'adversaire (un peu comme aux échecs : 2 "armées" à chaque bout du damier,on fait jouer un joueur puis on fait tourner le damier et on fait jouer l'autre joueur).
Mais lorsque je fais tourner mon damier, je m'aperçois que celui-ci mais un peu de temps pour tourner ( c'est un peu saccadé) alors ma question est :
Est-ce-qu'il y aurait un moyen de rendre le mouvement plus fluide ?

Pour mieux comprendre comment je m'y prend, voici la portion de code concernée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
//vX,vY,vZ sont les 3 premiers paramètres de gluLookAt
 
static void deplacementCamera(void)
{
	static int i = 1;
	if (i <=15){
       	opg->vX --;
		opg->vY ++;
		opg->vZ ++;
		glutPostRedisplay();
		i++;
	}
	if (i>15 && i<=31){
       	opg->vX ++;
		opg->vY ++;
		opg->vZ --;
		glutPostRedisplay();
		i++;
	}
 
}
 
 
// lorsque j'appuie sur la touche '*' , je déclenche le mouvement
 
void clavier(unsigned char touche,int x,int y)
 {
         ...
    case '*':
		{
		cout << "touche *" << endl;
		glutIdleFunc(deplacementCamera);
		break;
		}
    }
 }
        ...
Idées :
- les modèles 3ds sont trop lourds pour l'application : un déplacement plus fluide n'est pas possible;
- le recours à des boucles 'for' (dans la méthode deplacementCamera) ralentit le déroulement de la méthode de déplacement de la caméra;


Merci de me faire part de vos réactions sur ce problème et d'apporter éventuellement une solution ...