Dites moi, peut il y avoir des différences d'exécution pour des programmes faits en C avec SDL sur un processeur 32 bits et un pc fonctionnant à double coeur tournant sur 32 ou 64 bits au faite ?? (je précise le double coeur c'est un athlon X2 4200+ mais je sais pas le nombre de bits).
Car mon pong tourne nickel sur plusieurs 32 bits (la balle est bien renvoyé par ma barre^^) et sur mon nouveau pc à double coeur, la balle passe à travers de la barre
Ca doit pas être le processeur car j'ai moi meme fait un pong (juste après avoir le le tuto) et il marche sans problème avec mon processeur (qui de plus date : AMD Athlon 1700+ )
Tiens le même processeur que moi
C'est un 64 bits effectivement et il est bicoeur. Non ça n'explique absolument pas la différence entre les deux pc, normalement ça devrait être pareil.
ca marche oui sur d'autres 32 bits j'ai testé à mon boulot y a quelques jours nickel mais par exemple je viens de le passer à un pote en 64 bits ca passe pas je vois pas pourquoi je vous joint mes fichiers dans un rar si vous voulez matter y a tout...
Pour ouvrir le projet, ouvrez pong.dev, pour lancer l'exe lancer pong.exe^^
if (positballe.x>=positbarreD.x)//Gere barre de droite
if (positballe.y>=positbarreD.y && positballe.y<=positbarreD.y+barre->h)
vitesseX=-vitesseX;
if (positballe.x<=positbarreG.x+barre->w)//Gere barre de gauche
if (positballe.y>=positbarreG.y && positballe.y<=positbarreG.y+barre->h)
vitesseX=-vitesseX;
Je n'ai pas le temps de me pencher sur ton erreur mais ce code est horrible, digne de programmeur c. On est actuellement dans une époque où la maintenabilité prime sur l'efficacité (l'optimisation en quelque sorte) du code.
Ce genre de petit raccourcis pour qu'un max de code tienne sur un ecran sans compter d'autres situation encore plus étonnantes :
Citation : hugobosscool26
if(positballe.y==(ecran->h-balle->h))//Gere le bord du bas
{vitesseY=-vitesseY;}
if(positballe.y==0)//Gere le bord du haut
{vitesseY=-vitesseY;}
if(positballe.x>=(ecran->w - balle->w))//Gere le bord de droite
{scorG++;
positballe.x=400;
positballe.y=100;
vitesseX=-vitesseX;}
if(positballe.x==0)//Gere le bord de gauche
{scorD++;
positballe.x=400;
positballe.y=100;}
Tu peux choisir de rester dans l'ancien temps où le programmeur dans sa tour d'ivoire codait ses programmes bien tranquillement sans se soucier des autres ou t'ouvrir à une communauté et présenter un code un peu plus agréable à lire.
Euh honnêtement je comprends pas trop pourquoi tu t'excites comme ça.
L'avantage de son code à lui c'est qu'il reste bon les barres ne prennent pas toute la hauteur de l'écran.
De plus, je vois pas trop en quoi il est si moche. Si mettre deux if à la suite te fais peur, tu dois trouver que ce forum est une suite de fous furieux dans des tours en dents de lait.
Moi ça marche sur mon PC... Essais pê de chercher ailleurs dans le code. Pê que ça ne vient pas du moment où tu gère les collisions... Cherche par exemple aux endroits où tu gère le temps ou je sais pas moi.
(Je n'est pas le temps de lire ton code dsl, en tt cas, il me paraît pas si moche que ça ! )
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)