je doit y aller a plus tard dans quelques jours, snif
bye ![]()
J´ai pas eu le temps encore de regarder les programmes, car je suis au boulot, et meme si en ce moment, je fais + calculer la machine que programmer ( donc j´ai un peu de temps) j´ai pas encore trop le temps de regarder tout de suite bref.
Giga-Nova > impec
charlostm > Le C++ associé a SDL par exemple te permet d´importer dasn ton programme des BMP, par exemple : donc ces BMP, soit tu les fait avec paint, soit tu télécharges des graphismes tout fait ![]()
jyy > > juste 1 petit prob, la raquette sort tjr de l´ecran
Jyy , comment tu fait pour tous savoir?
( ajouté un accent niais a la presonne qui pose la question)
![]()
Giga-Nova >
au moment ou tu déplaces ta raquette vers le haut ou le bas :
ton rect2.y+=3 ou rect2.y-=3
tu les protege avec un if chacun :
if ( rect2.y>10) rect2.y+=3;
adapte pour l´autre
comme ça tu le bouges uniquement si la position n´est pas trop en haut ( ou trop en bas)
BigGamer95 >
while(dejatire[choix[i]]!=0);
choix[i] varie entre 1 et j ( comme tu as fait +1 dans le while)
donc y´a risque de plantage car dejatire[j] n´existe pas, ça va de 0 a j-1
met donc :
while(dejatire[choix[i]-1]!=0);
Thesuperbest >
tu utilises :
SDL_LoadBMP pour charger tes chipset et charset
cette fonction charge les surfaces en RAM.
tu lui demandes de blitter 10000 fois secondes, soit. Blitter depuis la VRAM 10000 fois par secondes, ça roule ! ! ![]()
Le probleme, c´est que depuis la RAM, il y a 10000 copies de tiles depuis la RAM vers la VRAM par secondes, ce qui a de quoi ralentir fortement les choses...
Charge ton image en VRAM : utilise la fonction
LoadBMP qu´il y a dans mon programme sur le scrolling a la souris : ça charge la surface, puis la copie définitivement en VRAM :
tu devrais gagner sensiblement en vitesse...
j´ai une question sur le modle objet du C++ :
pour m´entrainer je me susi dit que j´allais essayer de programmer un ensemble de fonction pour traiter de l´algèbre linéaire : c´est un exercice de style, on à quelques trucs de base ( des réel et des complexe puis on peut faire des matrice de réel ou des vecteurs ou des polynome, puis des matrice de polynome de vecteur de complexe...)
bon, mais plus prosaiquement pour définir un opérateur simple comme l´addition sur la classe des réels,
si je déclare
& operator+(R &);
je peut renvoyer un pointeur vers un réel qui n´est ni celui auquel la fonction est appliqué ni celui qu´on lui additionne ? et dans ce cas là, il est créer et détruit comment ?
merci pour vos réponse.
http://rafb.net/paste/results/fH4E7O38.html
voila un petit programme qui met des calculs de 2 a 4 nombres tirés au hazard ( des additions)
mais quand il y a 4 chiffres dans l´addition ( ex: 1+2+1+2)
et bien c´est toujour des calculs du genre 1+2+1+2 ou 10+12+10+12 ect.......
il y a donc un porbleme mais je n sias pas lequel!
et quand je construit ma class template matrice, comment est ce que je peut lui dire que je ne veux en paramètre template que l´une de mes autre class ( reel complexe ou matrice) ? et non pas n´importe quel class du langage ?
sonic :
peut-être tout simplement parce que tu lui emande d´afficher a b a b :
cout < < a < < " + " < < b < < " + " < < a < < " + " < < b < < " = " ;
dnob700 > ce qui me fait bizarre, c´est ton :
& operator+
tu es sur que tu ne voulais pas mettre :
R& operator+ ?
renvoyer une référence est utile que si tu veux modifier le parametre passé :
comme par exemple si tu fais :
i+=1;
si tu surcharges cet opérateur, alors oui, tu renvoies une référence, car tu passes implicitement :
i=i+1;
donc, tu passes i, et tu veux le modifier.
Cependant, pour une addition normale :
c = a+b;
c est calculé depuis a et b, et a et b ne seront pas modifié, e plsu c sera créé de toute piece, tu n´as donc pas besoin de le renvoyer par référence ( je ne sais pas si je suis clair)
donc tu peux direct faire :
R operator+
J´ai un exemple sur la surcharge de la fraction sur mon maigre tuto sur les classes, paragraphe C.2. qui pourrait peut etre t´aider.
J´ai peut etre tout compris de travers ce que tu me demandes, si c´est le cas, rééxplique moi ![]()
Encore un dilème avec la SDL assez persistant
while(1)
{
SDL_PollEvent(&);
if ( event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_RETURN)
break;
rect1.x+=4*sx;
rect1.y+=4*sy;
if ( rect1.x<0) sx=1;
if ( rect1.y<0) sy=1;
if ( rect1.x>770) sx=-1;
if ( rect1.y>570) sy=-1;
if ( rect2.x<0) sx=3;
if ( rect2.y<0) sy=3;
if ( rect2.x>770) sx=-3;
if ( rect2.y>570) sy=-3;
if ( event.type == SDL_KEYDOWN)
{
if(rect2.y>528) rect2.y-=3;
{
if ( event.key.keysym.sym == SDLK_UP) rect2.y-=3;
if ( event.key.keysym.sym == SDLK_DOWN) rect2.y+=3;
}
}
if ( rect1.x<20 && sx==-1)
{
if ( rect2.y<rect1.y && rect1.y<rect2.y+rect2.h)
{
sx=1;
}
else
{
}
}
if ( event.type == SDL_KEYDOWN)
{
if(rect3.y>528) rect3.y-=3;
{
if ( event.key.keysym.sym == SDLK_q) rect3.y-=3;
if ( event.key.keysym.sym == SDLK_a) rect3.y+=3;
}
}
if ( rect1.x<20 && sx==+1)
{
if ( rect1.y<rect3.y && rect3.y<rect1.y+rect1.h)
{
sx=1;
}
else
{
}
}
SDL_BlitSurface(firstscreen,NULL,screen,NULL);
SDL_BlitSurface(balle,NULL,screen,&1);
SDL_BlitSurface(raquette,NULL,screen,&2);
SDL_BlitSurface(raquette2,NULL,screen,&3);
SDL_Flip(screen);
}
SDL_ShowCursor(1);
SDL_Quit();
return 0;
}
voila, mon rect3 ma 2eme raquette refuse de gerer les colisions ( et cela m´enrve bocoup)
qui peut resourdre cet enigme avant , SUPER PROGRAMMEUR JYY
dnob700 >
" et quand je construit ma class template matrice, comment est ce que je peut lui dire que je ne veux en paramètre template que l´une de mes autre class ( reel complexe ou matrice) ? et non pas n´importe quel class du langage ? "
je ne sais pas si on peut...
si on peut tiens moi au courant ![]()
Je sais par contre qu´on peut faire des cas particuliers :
par exemple, tu veux définir une fonction :
template < class T>
int plouf(T a)
{
. ..
}
et tu veux qu´elle agisse pareil pour chaque, sauf pour les " int" on va dire, ou tu veux que le comportement soit différent :
a ce moment la, tu définis explicitement la fonction pour int, ce que le mécanisme de template va voir comme cas particulier :
template < class T>
int plouf(T a)
{
. ..
}
int plouf(int a)
{
/ / cas particulier
}
dnob700
a ben je fait vraiment des erreurs bete!
bon dem1 je passerais a l´affichage des carctères sur la SDL
avec _tff non ? ?
toujour dans mon script , comment faire pour que ca mette un message derreur quand par exemple le chiffre est un char?
jai essayer ca:
if(r2==char)
{
cout < < " tu n´as pas ecris quelque chose de valide!" < < endl;
}
ou encore ca
if(r2!=int)
{
cout < < " tu n´a pas ecris quelque chose de valide!" < < endl;
}mais ca ne marche pas!!!
ps: r2 est le resultat que lon doit taper.
mmmm... un chiffre donc un CARACTERE
c donc considéré comme accptable par char je crois
giga , la mon r2 est un int est je ne sais pas comment faire . ..