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++

Ptival
Ptival
Niveau 10
22 août 2004 à 21:33:01

Le meilleur est surement http://www.developpez.com , où tu trouveras par exemple le cours de Christian Casteyde :

http://www.developpez.com/c/tutcpp/book1.php

techslash
techslash
Niveau 8
23 août 2004 à 01:30:53

J´ai une question qui porte, il me semble, sur la technique plus que sur le langage lui-même.

J´utilise Visual Studio . NET. Il apparait que

BOOL y soit
typedef int BOOL;

TRUE y soit

  1. DEFINE TRUE 1

FALSE y soit

  1. DEFINE FALSE 1

J´aimerais savoir, quel est l´intérêt d´utiliser BOOL ? Pourquoi ne pas simplement utiliser le bool miniscule ordinaire ? Surtout que l´IDE met bool, true et false en bleu mais pas BOOL, TRUE et FALSE. Et dans le cas où il faudrait retourner un int, pourquoi ne pas utiliser le type int ?

techslash
techslash
Niveau 8
23 août 2004 à 01:31:33

errr...

FALSE y soit

  1. DEFINE FALSE 0

pas 1 :)

lag-it
lag-it
Niveau 10
23 août 2004 à 02:29:43

BOOL existait avant bool : en C pas de bool, donc cela explique qu´il existe encore aujourd´hui de nombreuses librairies qui emploient cette notation, ne serais ce que par héritage de composant employant cette même notation.

Maintenant l´usage de l´une ou l´autre de ces notations dépens surtout du compilateur et de l´architecture d´exécution du code :

Si on reprends ton exemple, BOOL est en fait un int.

Or d´après la norme du C++ ( ANSI/ISO) :

1 < = sizeof(bool) < = size(long)

Oui oui, < = sizeof(long), c´est peut être idiot, mais c´est comme ca.

Ah mon avis BOOL est plus intéressant puisqu´utilisant à coup sûr le type int qui présente l´avantage d´être le type entier natif d´une machine sur laquelle le programme sera compilé.
Cependant bool peut prendre moins de place s´il est stocké sur un octet ( quoique j´ai lu que certains systèmes dont le type natif est int, stockent les chars sur des demi-int ( laissant ainsi une partie de la mémoire inutilisée), sauf cas des données consécutives : tableaux )

Bon en général on a plutôt tendance à emplyer bool, car type " officiel".

Mais la meilleure solution reste d´utiliser, dans le cas ou l´on doit faire usage de plusieures valeures booléennes, un système de flags ou on se sert des bits d´un unsigned int ou d´un unsigned char comme booléens. Grâce aux opératuer biwise et au masquage, on allie puissance, rapidité et faible encombrement en mémoire :)

thesuperbest
thesuperbest
Niveau 8
23 août 2004 à 10:31:57

Qu´est ce c´est le modulo(%) ?

lag-it
lag-it
Niveau 10
23 août 2004 à 10:51:10

L´opérateur modulo, tel que : a%b te permet d´obtenir le reste dans la division ENTIERE de a par b.

Ainsi : 7%4 = 3, 8%3 = 2, 6%3 = 0.

Cependant, l´opérateur modulo lorsqu´il est employé de très nombreuses fois successivement dans la boucle principale d´un jeu par exemple, peut nuire aux performances étant donné sa nature assez gourmande.

Une manière de l´utiliser tout en conservant une très bonne vitesse d´exécution consiste à n´employer que des puissances de 2 pour le diviseur ( ou du moins aussi souvent que possible) et d´effectuer un masquage.

Ainsi : 17 % 8 == 17 & 0x7 == 17 & 7
En effet, les reste possibles dans la division par 8 sont 0,1,2,3,4,5,6,7, donc en masquant les 3 dernier bits seulement, on obtient le reste dans cette division.

De même : 13 % 4 == 13 & 0x3 == 13 & 3

Donc, pour effectuer une opération modulo en utilisant une puissance de 2, il suffit simplement d´utiliser :

x & ( y-1)

Où x est le nombre quelquonsque à moduler ( pas forcément puissance de 2) et y est la puissance de 2 employée pour moduler ( on retranche 1 donc)

lag-it
lag-it
Niveau 10
23 août 2004 à 10:52:20

Bon ceci dit si tu ne t´en sert que peu dans la boucle d´un jeu ou que ton programme n´est pas orienté performance, mieux vaut conserver l´usage de % qui donne un code plus clair :)

thesuperbest
thesuperbest
Niveau 8
23 août 2004 à 11:04:18

Merci, mais je voudrais aussi savoir comment on fait avec la SDL pour ne blitter qu´une partie de l´image qu´on a charger ?

lag-it
lag-it
Niveau 10
23 août 2004 à 11:17:19

Il faut que tu utilise la fonction :

SDL_BlitSurface(image, &, ecran, &);

Où :

:d) image est le pointeur vers ta SDL_Surface contenant ton image à afficher.

:d) zone est un SDL_Rect qui détermine quelle partie de l´image tu veux afficher.
Imaginons que tu dispose d´une image de 20x30 pixels qui est en fait composée de 3 étape d´animation d´un sprite de 20x10 pixels.
Pour obtenir l´image du millieux, utilise :

SDL_Rect zone;
zone.x = 0; / / Pixel à partir duquel on copie l´image horizontalement
zone.y = 10; / / Pixel à partir duquel on copie l´image verticalement
zone.h = 10; / / Hauteur de la zone à copier
zone.w = 20; / / Largeur de la zone à copier

Ou plus court :

SDL_Rect zone = {0,10,10,20};

Pour obtenir l´image tout en bas :

SDL_Rect zone = {0,20,10,20};

Ou celle tout en haut :

SDL_Rect zone = {0,0,10,20};

:d) Ecran est un pointeur vers la SDL_Surface représentant ton écran.

:d) destination est un SDL_Rect dont seule les composantes x et y sont utilisées : elle définissent la position de ton image à l´écran.

Voila :)

ELEKT_X
ELEKT_X
Niveau 4
23 août 2004 à 13:03:14

Salut lag-it, j´ai plusieurs questions à te poser à propos de TIGCC ( je suis un débutant total) comment est ce que je peux faire pour afficher une image de présentation lorce que je lance mon prog sur ma ti89 ?
Et je voulais savoir aussi comment creer des lignes, des points,etc...

0[0]7
0[0]7
Niveau 6
23 août 2004 à 14:06:11

est-ce que vous connaissez un BON site pour apprendre à faire la 3D ? Merci :-)

JeanYvesYves
JeanYvesYves
Niveau 10
23 août 2004 à 16:11:17

bon tuto 3D :
http://nehe.gamedev.net

sinon, je crois que lag-it a répondu a tout :)
mon opinion sur BOOL ou bool :
BERK ! !! ( ce type de merde prend 4 octets)

autant mettre direct un int ! ( ou alors un char, bien qu´avec l´alignement mémoire, on n´est pas sur d´y gagner), ou alors passer par masquage avec flags, comme disait lag-it :)

dnob700
dnob700
Niveau 10
23 août 2004 à 16:24:05

mais il faut faire gaffe parce que dans certain langage ( je ne croit pas en C, mais se pourrait dépandre des compilo) ( int)true==-1 et non pas 1 Ce qui peut provoquer des erreurs stupides.

leprov
leprov
Niveau 6
23 août 2004 à 18:39:39

de ttes facons on utilise jamais la valeur numerique de true. et true n´est pas 1, true est tout sauf zero.
en tous cas en toute rigueur. essayez de mettre un boolén a 1231, et regardez si votre boleen vaut true ou false, genre
bool B = 12;
if ( bool) cout < < " true";
else cout < < " false";

donc true vaut bien tout sauf zero. sauf effectivement dans certains langages ou le type boolen n´est pas implementé et qu´on a un type booléen fait par typedef....

Neofungamer
Neofungamer
Niveau 22
23 août 2004 à 19:23:39

salut je cherche les refs d´un bouquin ou d´un tutos si possible en francais sur l´opengl

( pourquoi en francais parceque en prog il y a enormement de termes techniques à abordé et la trdustions de ceux si n´est pas forcement dans mon cerveau donc perso je prefere un tuto francais pour les bases et continuer avec des tutos english)

ensuite pour opengl peut t´on équiper devc++ avec ou devrais-je resortir mon visual c++6

et ou puis je trouver cette libs et est ce que c´est payant

( je compte programmer en C avec)

LGV
LGV
Niveau 28
23 août 2004 à 19:33:03

dans l´ordre :

télécharges le Redbook 1.2, c´est le mieux ; il me semble qu´il existe une version française ( numérique je ne sais pas, mais au moins imprimée si tu veux l´acheter ; les PDF sont gratuits)

tu peux utiliser les libs OpenGL avec n´importe quel compilateur, voire OS ; c´est connu pour la portabilité, ce n´est pas une légende :D

ces libs sont déjà dans ton PC, les OS les embarquent avec eux ; tu peux éventuellement vouloir des libs complémentaires, comme glut, que tu trouveras facilement via un coup de google ( opengl.org, ça existe si je me rappelle bien)

et ce n´est pas payant

JeanYvesYves
JeanYvesYves
Niveau 10
23 août 2004 à 21:06:01

Je confirme l´existance du redbook en français version papier déja. ( ou alors il y a chez moi un livre qui vient d´une autre dimension...)

riiia
riiia
Niveau 10
23 août 2004 à 21:12:15

merci de m´avoir repondu y a pas longtemps pour ma recherche de sites
si vous en avez d´autre n´hesitez pas surtout
( comme ca je referais plusieurs fois les memes themes et je les connaitrais mieux)

0[0]7
0[0]7
Niveau 6
23 août 2004 à 22:54:22

Je télécharge les fichiers pour opengl. J´mets dans include GL.h et GLUT.h, et dans lib glaux.h et glut.h. Ensuite, je mets un bout de code, je compile, ça met :

gl/glut.h : No such files or directory

Help-me plz :(

Koyo-K
Koyo-K
Niveau 9
23 août 2004 à 23:11:35

Salut. Ca fait comme moi pour la SDL. Essaie gl.h ou glut.h, c´est ce que j´ai fait et ca marche.

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