CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

thesuperbest
thesuperbest
Niveau 8
09 mars 2005 à 19:22:11

JYY > ça marche parfaitement maintenant :merci:

LGV
LGV
Niveau 28
09 mars 2005 à 19:25:34

^^^^^ne pas faire un template pour ça, ce serait devier le concept que d´esperer limiter à deux classes spécifiques. Tu peux toujours faire une spécialisation de template, mais bonjour le mauvais design pour un truc comme ça. Va plutot faire un tour du coté polymorphisme.

dnob700
dnob700
Niveau 10
09 mars 2005 à 19:32:04

sonic66 : tu définit r2 comme un int donc l´utilisateur en peut entrer qu´un int

s´il fait autre chose je pense que ça fera comme s´il avait entré zéro.
tu pourrait faire des test plus complexe en lisant une chaine de caractère et en regardant si elle est valide, mais je te le déconseille pour l´instant.

JYY: non tu as bien compris ce que je voulais faire, c´est moi qui me suis embrouillé, c´est bien
R operator+(R &) qu´il me fallait, mais j´avais un problème pour mes constructeur qui ne prenait pas ce qu´il fallait en argument. là ça va.

ma nouvelle mission c´est d´afficher les truc, alors j´ai essayer de faire un truc comme ça :
ostream operator<<(ostream s,R &);
puis plus loin
ostream R::operator<<(ostream s,R &)
{
s < < moi.val;
return s
}

mais il n´est pas content car ostream aussi est un template, mais je ne sais pas avec quoi l´instancier puice que cout et cin n´ont rien d´indiquer.

inconnu[pure]
inconnu[pure]
Niveau 6
09 mars 2005 à 19:41:00

[1][2][3]
[4][5][6]
[7][8][9]

Bon mon problème est : j´aimerais par exemple prendre d´un fichier bmp qui a un perso en differente positions. Je voudrais prendre par exemple prendre la posture 5(voir schéma).

Saachant que les perso font chacun 24 de largeur et 16 de largeur comment charger le perso 5 en SDL

dnob700
dnob700
Niveau 10
09 mars 2005 à 19:42:30

tu doit d´abord charger toute la planche, puis recopier le perso 5 sur une autre surface.

LGV
LGV
Niveau 28
09 mars 2005 à 19:42:57

dnob700 : utilise des ostream &

Giga-Nova
Giga-Nova
Niveau 9
09 mars 2005 à 20:03:22

inconnu > > super ton pong en SDL
bon, pour les perso tu dois faire image par image c tout

JeanYvesYves
JeanYvesYves
Niveau 10
09 mars 2005 à 20:23:34

inconnu[pure] >
charge toute ton image en mémoire, ensuite, ce sera au moment du blit que tu changeras
tu te rappelles des parametres du BlitSurface :

SDL_Surface* source, NULL, SDL_Surface* dest,&

avec R coordonnées destination.
Tu vois le NULL innocent que tu avais surement l´habitude de mettre systématiquement a NULL :
ce NULL voulait dire : copie TOUTE l´image source.
Dans ton cas, l´image source contient tous les bonhommes, donc on ne copiera qu´une partie de l´image source :
et donc cette fois, il faudra mettre les parametres :

SDL_Surface* source, &2, SDL_Surface* dest,&

R2 sera un rectangle, dont tous les parametres seront importants : ce sera le rectangle source.
Déja, tout perso fait donc 24 de largeur et 16 de hauteur ?
R2.w = 24;
R2.h = 16;

Il ne reste plus que x et y : pour savoir ou on commence.
Je modifie ta " matrice" :

[0][1][2]
[3][4][5]
[6][7][8]

Je pars de 0.

tu as NBX = 3 ; / / nombre d´images par ligne
le nombre d´image par colonnes, on s´en fout.

tu veux l´image I :

c´est simple :

R2.x = ( I%NBX)*24;
R2.y = ( I/NBX)*16;

Voila, et avec ça, tu te cales direct sur le bon bonhomme.

jejej
jejej
Niveau 9
09 mars 2005 à 21:05:47

R2.x = ( I%NBX)*24;
R2.y = ( I/NBX)*16;

tu peux reexpliquer cette ligne JYY stp ?
meme si , de toute façon , j´utilise aussi les coordonnées Y moi , j´avais pas pense a faire autrement . ..

Ah oui , et sinon , quel est cet algo magique , qui trace une ligne plus vite que moi :( ?
Tu peux me montrer à quoi il ressemble stp ?

JeanYvesYves
JeanYvesYves
Niveau 10
09 mars 2005 à 22:05:02

pour l´algo, recherche " line Bresenham" sur google :) tu trouveras l´algo : il est meme implanté dans les circuits de toute carte graphique ( utilisé en 3D également)

Sinon, pour les lignes :
R2.x = ( I%NBX)*24;
R2.y = ( I/NBX)*16;

on commence par y : le but est de savoir sur quelle ligne on est : je te rappelle la matrice :

[0][1][2]
[3][4][5]
[6][7][8]

avec NBX = 3

si tu choisis I = 0,1 ou 2 I/3 = 0
si tu choisis 3,4,5 I/3 = 1
( division entiere)
tu vois le truc ? simplement I/NBX, ça te donne la bonne ligne...
I%NBX : % c´est le reste de la division :
le reste d´une division par 3, c´est 0,1 ou 2.
fait des essais, cela te donnera la bonne colonne...

Il ne reste plus qu´a multiplier X par 24, car la largeur d´un sprite est de 24 : et tu tombe sur la bonne coordonée X, pareil pour Y, tu multiplies par 16 pour tomber sur le bon début de ligne

Giga-Nova
Giga-Nova
Niveau 9
09 mars 2005 à 22:06:07

et pour mon prblème jyy plz..

Giga-Nova
Giga-Nova
Niveau 9
09 mars 2005 à 22:11:25

http://rafb.net/paste/results/DxpIfO19.html
voila mon code..

JeanYvesYves
JeanYvesYves
Niveau 10
09 mars 2005 à 22:12:51

Giga-Nova >

ton soucis, c´est que tu testes les collisions que si x<20, dans les 2 cas !

or, pour la raquette de gauche, on est ok, quand la balle est trop a gauche, on va tester la suite, mais pour la raquette de droite, tu testes la meme chose : si la balle est trop a gauche : c´est pas logique ! !
pour ton autre cas, il faudrait plutot faire x>500 par exemple ( a toi d´ajuster la bonne constante)

JeanYvesYves
JeanYvesYves
Niveau 10
09 mars 2005 à 22:13:48

et pareil, il faut tester aussi si la balle va vers la droite : donc

if ( rect1.x>500 && sx==1)

LGV
LGV
Niveau 28
09 mars 2005 à 22:31:41

ça devient n´importe quoi ce topic... C´est un peu comme Lourdes ici, chacun vient avec son truc qui marche pas, meme si ça n´a AUCUN rapport...

JeanYvesYves
JeanYvesYves
Niveau 10
09 mars 2005 à 22:57:56

voila j´ai viré les messages en trop !

Giga-Nova
Giga-Nova
Niveau 9
10 mars 2005 à 08:27:16

Bonjour tout le :globe:

MrGoTo
MrGoTo
Niveau 8
10 mars 2005 à 09:34:08

A moi d´user du topic. J´ai une incomprehension à propos des differents cast du C++ à savoir static_cast, reinterpret_cast et dynamic_cast ( yen a un autre que j´ai du oublié). Je pense avoir compris le premier qui est finalement proche du cast implicite du C.

JeanYvesYves
JeanYvesYves
Niveau 10
10 mars 2005 à 09:44:48

static cast, c´est le cast normal, dynamic cast, ça teste si le cast est possible, donc c´est un chouia plus lent, mais tu as une " valeur de retour" si j´ose dire, alors que le static, si ce n´est pas vraiment castable, ça te fait n´importe quoi...
Quant au reinterpret cast, je ne sais plus

Je pense qu´on peut vivre sans ça :) moi je cast toujours a la maniere C, lol :)

MrGoTo
MrGoTo
Niveau 8
10 mars 2005 à 09:53:03

Ah oui l´autre c´est le const_cast.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment