GLfloat rtri;
GLfloat rquad;
int WindowName;
void Reshape(int width, int height)
{
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45,
float(width)/float(height),
0,
100);
glMatrixMode(GL_MODELVIEW);
}
void Draw()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset The View
glTranslatef(-1.5f,0.0f,-6.0f);
glRotatef(rtri,0.0f,1.0f,0.0f);
glBegin(GL_TRIANGLES); // Start Drawing A Triangle
glColor3f(1.0f,0.0f,0.0f); // Set Top Point Of Triangle To Red
glVertex3f( 0.0f, 1.0f, 0.0f); // First Point Of The Triangle
glColor3f(0.0f,1.0f,0.0f); // Set Left Point Of Triangle To Green
glVertex3f(-1.0f,-1.0f, 0.0f); // Second Point Of The Triangle
glColor3f(0.0f,0.0f,1.0f); // Set Right Point Of Triangle To Blue
glVertex3f( 1.0f,-1.0f, 0.0f); // Third Point Of The Triangle
glEnd();
glColor3f(0.5f,0.5f,1.0f); // Set The Color To A Nice Blue Shade
glBegin(GL_QUADS); // Start Drawing A Quad
glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left Of The Quad
glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right Of The Quad
glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right Of The Quad
glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left Of The Quad
glEnd();
rtri+=0.2f; // Increase The Rotation Variable For The Triangle ( NEW )
rquad-=0.15f;
}
int main( int argc, char *argv[ ], char *envp[ ] )
{
int i;
glutInit(&, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(640,480);
WindowName = glutCreateWindow("Ma première fenêtre OpenGL ! ");
glutFullScreen();
glutReshapeFunc(Reshape);
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
J´arrive pas à lui faire faire une rotation
( Dsl pour le double-post )
0[0]7 >
bon je vais déja répondre plus longuement, car en lisant un de tes posts, j´ai vu " il affiche pas les polygones si z < 0"
disons que c´est plus ou moins juste
en effet, d´apres ce que je comprends, tu essaies de mettre les polygones devant ton oeil.
tu pars du principe que ton oeil regarde dans la direction z>0 ( pour simplifier)
En réalité, c´est tout autre : un monde de counter strike ne bouge pas ! Les polygones sont placés toujours au meme endroit ( je te parle uniquement des murs : bien sur qu´il y en a d´autres qui bougent ! )
c´est TON OEIL qui bouge.
c´est a dire que si tu fais un demi tour, la tu regardes les z<0 et la, bien sur, il faut les afficher
Donc apres, c´est pareil : soit tu bouges ton oeil autour d´un objet, soit tu bouges l´objet autour de ton oeil : visuellement c´est pareil ( regarde sur terre, on a l´impression que c´est le soleil qui nous tourne autour, et pourtant c´est l´inverse : ça revient au meme ( dire que y´a des mecs qui ont brulé pour avoir dit ça...))
Pour bouger ton oeil, jette un oeil sur la fonction :
gluLookAt(x,y,z,vx,vy,vz,ux,uy,uz)
glaab > j´aime pas le javascript désolé.
Les paramètres de " gluLookAt", c´est quoi ceux qui commencent par un " v", et ceux qui commencent par un " u" ? :-o
Sinon, euh, pour la rotation de mon triangle ( & de mon quadrilatère ) ? ![]()
alors :
x,y,z : centre de ton oeil
( prend toi en exemple : tu es chez toi : x,y,z c´est la position de ton oeil.)
vx,vy,vz ( autrement appelé point " AT") c´est l´endroit ou tu regardes
( tu regardes ton écran, donc ce point est la position de l´écran)
ux,uy,uz c´est le vecteur " up" :
un vecteur qui montre le " haut", par exemple, penche ta tete sur le coté : ton oeil ne bouge pas de position, tu regardes toujours au meme endroit, mais penché : le vecteur up determine cela.
Ce dernier doit etre normalisé.
Pour la rotation, met un
glRotate(angle,x,y,z)
x,y,z est le vecteur ( l´axe) autour duquel tu tournes, angle est un angle, en dégrés
http://pyopengl.sourceforge.net/documentation/manual/gluLookAt.3G.html
http://pyopengl.sourceforge.net/documentation/manual/glRotate.3G.html
Je l´ai mis, mais ça marche pas. L´ecran est noir ( c´est toujours le même code qu´au dessus ) .
c´est que tu as mis une mauvaise rotation, ou mal tourné ton oeil : bref, tu ne regardes pas la ou sont tes polygones ![]()
J´ai réussi . ..
( Mais je sais pas comment j´ai fait :-° )
Mais JYY, si dans counter ( par exemple ) , y´a un mur qui bouge, il faut rafficher toute la map ?
de toute façon, toute la map est reaffichée a chaque frame.
enfin comme je disais, en réalité non, il y a des prétraitements qui permettent de calculer les polygones a traiter ( et en éliminent certains autres), tu peux aussi faire des listes de polygones statiques.
Mais quoi qu´il en soit, si tu oublies ça dans un premier temps : a chaque frame, tu renvoies tous tes triangles grace a glVertex ( dans un corps de GL_TRIANGLES ou GL_QUAD)
![]()
J´aimerais savoir de quel est le problem de mon programme.
Vous pouvez le telecharger le code source ici http://purecreator.free.fr/telechargement/Loto_game.cpp
Rien de concret,mais je viens de commencer et deja bloqué
.
Bons alors mon problem c´est qu´a la ligne 80 il m´indique un parse error before `]´ . Donc je conte sur vous de me trouver l´erreur pendant que je joue a m´a xbox(que je n´ai pas d´ailleurs
) et que sa saute.
Bons
d´avance pour la reponse.
ps:J´espere que mon problem seras facile.
ps2:Et re-merci d´avance.
ps3:Et encore je voudrais avant Noe...Qoui ok je sors ![]()
for(h=0; h<5 ; h++) cout < < " Voila les nombres choisis par l´ordinateur numero " < < i < < " \t" < < nbh[i] < < " .\nVous avez choisis\t" < < Nb[i] < < " \n";
--> Tu iteres sur h ( ok)
mais apres, tu te sers de i dans ton cout...
Qu´est ce que i ici ? puisque tu n´as déclaré qu´un " h"
Soit tu ne mets que des i, soit que des h, mais en aucun cas un i et un h ne sont la meme chose ! ![]()
Merci JY²,mais je me suis trompé de code.
Bonjour j´ai de nouveau un problem.Le jeux en lui meme a des bugs.Comme par exemple l´ordinateur joue deux fois.Pouvez vous m´aider.
merci d´avance.
Le lien pour le code est http://purecreator.free.fr/telechargement/rolette_russe.cpp
--> tu fais tour_de_qui++;
donc si tu étais a 0 ça passe a 1, ok ![]()
mais si tu es a 1, ça passe a 2...
Ton test teste juste si c´est tour_de_qui==0
autrement dit, si ton rand()%2 a choisi 0, alors la, ok, c´est lui qui joue, mais sinon, il ne joue jamais, car tour_de_qui ne revient jamais a 0
--> correction :
juste apres ton
tour_de_qui++;
met un :
if ( tour_de_qui==2) tour_de_qui=0;
ou alors remplace:
tour_de_qui++;
par
tour_de_qui=1-tour_de_qui
a ton choix ![]()
Si quelqu´un pourrait me dire pourquoi le code
main()
{
char c;
printf("hello");
getchar();
scanf("char",c);
printf("%s",c);
system("pause");
}
Donne un programme qui bogue?
main()
{
char c;
printf("hello");
getchar();
scanf("%c",&);
printf("%c",c);
system("pause");
}
Si quelqu´un pourrait me dire pourquoi le code
main()
{
char c;
printf("hello");
getchar();
scanf("char",c);
printf("%s",c);
system("pause");
}
Donne un programme qui bogue?
Marque toujours les bugs que le compilo te donne, et si ça compile, dis nous comment ça foire a l´execution !
déja, si tu veux utiliser system("pause");
rajoute en haut :
Merci JeanYvesYves.Je suis tres ilogique pardonne moi,mais j´ai un autre bug , mais si je te le dit tu vas finir par faire le jeux a ma place