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

printf("blabla");

Houphouet
Houphouet
Niveau 10
29 avril 2012 à 21:39:34

Oui, c'est du java :)
Je suis pas sûr de bien comprendre mais ce que j'ai compris du static, c'est qu'il permet de conserver en mémoire une information d'une fonction qui s'exécute.

Enfin je sais pas si je suis clair mais sur le net j'ai vu cet exemple:

class UneClasse {
public static int counter = 0;
}

class Main {
public static void main (String []args) {
UneClasse un = new UneClasse (), deu = new UneClasse ();
un.counter++;
println (UneClasse.counter); // affiche 1
deu.counter++ ;
println (un.counter); // affiche 2
}
}

En gros a chaque appelle de counter, l'ordi est censé oublié le résultat, mais avec le static, il le conserve et permet de le réutiliser.

C'est à peu près ça?

Houphouet
Houphouet
Niveau 10
29 avril 2012 à 21:46:43

Main: http://pastebin.com/XUVnrNws
Prepare: http://pastebin.com/5vZpmxkH
Equipment: http://pastebin.com/fvGDVQ1w
Characters: http://pastebin.com/CemPmrW8
Arena: http://pastebin.com/Ns3XFbGY

Au passage, voici mon code retouché pour essayer d'organiser un peu mieux.
Je l'avais montré à un autre membre en MP qui m'a dit que j'utilisais beaucoup de static. J'ai un peu avancé en POO justement, et je me demande quel est l'intérêt de refaire le code pour me passer des static (car j'ai vu que je pouvais le faire) ?

Merci :ok:

Pocolo
Pocolo
Niveau 10
29 avril 2012 à 21:53:28

" mais ce que j'ai compris du static, c'est qu'il permet de conserver en mémoire une information d'une fonction qui s'exécute. "

En fait static à plusieurs usages selon les situtations, l'exemple que tu as donné ne correspond pas à ce que tu viens de dire.

Ce que tu as dit est correct dans le cas où on utilise static avec une variable dite "automatique", en gros une variable que tu instancies à l'intérieur d'une fonction (or dans ton exemple ta variable appartient à une classe, c'est différent), ce genre de variable existe seulement dans le "bloc" de la fonction en question, une fois qu'on est sorti de la fonction, cette variable n'existe plus en mémoire.

En utilisant le mot-clé statique on peut justement faire en sorte que, comme tu l'as dit toi même, la variable reste en mémoire même lorsque l'on sort du bloc de la fonction en question et on garde ainsi la valeur pour de futurs appels à cette fonction.

Pocolo
Pocolo
Niveau 10
29 avril 2012 à 22:02:50

Maintenant pour les classes, disons que quand tu écris un truc comme :

public class machin
{
int n;
char c;
}

Tu écris ce que l'on définit comme le prototype de la classe Bidule, mais après il faut que tu instancie des machins en mémoire si tu veux les manipuler, tu pourrais par exemple instancier 5 machins et chacun aurait un entier n et un caractère c distinct de ceux des autres machins, tu pourrais ajouter 5 à l'entier n de l'un de tes machins et seule la valeur de celui-ci changerait, le n des autres garderait la même valeur.

En revanche si on avait ajouté le mot-clé "static" devant "int n;", l'entier n existerait en mémoire dès l’exécution du programme (sans même allouer un seul machin en mémoire) car celui-ci est stocké dans la mémoire dite statique (et non pas dynamique). Puis si tu instancies des machins en mémoires ils auront une fois de plus chacun leur caractère c mais ils partageront tous le même entier n car il en existe qu'une seule copie (présente dès le début du programme comme dit plus haut).

Pour te donner un exemple un peu plus concret, je pourrais écrire une classe soldat ainsi :

class Soldat
{
static final int vie_max;
int vie;
}

Si je décide que dans mon jeu tous les soldats ont le même nombre de points de vie max, je peux utiliser static car il suffit d'avoir cette valeur à un seul endroit en mémoire pour s'y référer par la suite, si j'ai 50 soldats cela ne me servirait à rien d'avoir 50 fois la valeur vie_max en mémoire, ça serait juste du gaspillage.

En revanche il faut que chaque soldat ait sa propre variable "vie" (qui représenterait ici le nombre de hp actuel d'un soldat) car si un soldat se prends une balle et perds de la vie, je voudrais soustraire de la vie seulement à un seul soldat et pas à tous.

Donc en gros la variable vie_max appartient bien à la classe Soldat mais elle n'est pas propre à chaque instance de cette classe.

Pocolo
Pocolo
Niveau 10
29 avril 2012 à 22:03:44

" le prototype de la classe Bidule "

La classe "machin", ce lapsus. :hap:

Houphouet
Houphouet
Niveau 10
29 avril 2012 à 22:40:52

Ton exemple me parle bien ouais :oui:

Je vais rebûcher un peu et essayer de mettre au clair tout ça, mais j'y vois plus clair.

Merci :ok:

vive_cod4
vive_cod4
Niveau 9
01 mai 2012 à 15:58:32

Salut tout le monde !

J'étais en train de jouer à Doodle Jump pour les connaisseurs et je me demandais comment étaient gérés les sauts et je me demandais si c'était possible en utilisant les formules de physiques "Chute verticale" avec

1) Y = 1/2g*t*t + Vo*t + yo
2) Vf = g*t + Vo

Et je me disais que sur chaque plateforme on définit un Vo (si c'est un ressort on donnera une plus grande valeur que si c'est un bloc simple) puis ensuite on déplace le personnage toute les x secondes (x = temps pour que ça soit fluide,sûrement en ms) et au moment où il retombe (à partir de Vf = 0) on cherche si il y a une collision avec le bloc et on mets à jour Yo.

Est-ce possible d'effectuer ceci comme je pense ?

godrik
godrik
Niveau 30
01 mai 2012 à 17:47:39

C'est certainement comme cela que c'est fait.

vive_cod4
vive_cod4
Niveau 9
01 mai 2012 à 18:04:50

Ok, merci, pour une fois que je vois une application de ce que j'ai appris en physique

vive_cod4
vive_cod4
Niveau 9
02 mai 2012 à 19:48:48

Petite question bête en C++,

Pas plus tard qu'aujourd'hui,j'ai vu qqun initialisé ses variables comme :

int foo(0);

Quelle est la réelle différence entre ça et

int foo = 0; ?

Y-a-t-il un avantage ? foo(0) devrait être utiliser seulement pour les listes d'initialisations ?

Merci !

godrik
godrik
Niveau 30
02 mai 2012 à 20:04:05

vive_cod, il n'y a aucune difference les deux notations sont equivalentes.

La notation parenthese est necaissaire pour les objets qui ont plus d'un parametre dans le constructeur

foo bar (0,1,2);

Par extension ca marche aussi pour un seul parametre

foo bar (0);

Pour pouvoir remplacer de facon transparente foo par un type primitif, C++ defini

foo bar = 0;
et
foo bar(0);
de la meme facon

vive_cod4
vive_cod4
Niveau 9
02 mai 2012 à 20:25:13

Ok,merci c'est bien ce que je pensais (utiliser () pour les constructeurs et les listes d'initialisations)

caelacanthe
caelacanthe
Niveau 10
10 mai 2012 à 22:34:59

quelqu'un d'autre a essayé la nouvelle version stable de gimp, 2.8.0? :oui:

il n'y a que chez moi qu'elle rame horriblement (sous windows xp, et genre quand on utilise l'outil de déformation en cage)? j'ai même un PNG tout bête sous la main, 1920x1080 rempli de brun qu'il suffit d'afficher pour faire chuter le framerate à moins de 1, okay quoi. :hap:

Paulop
Paulop
Niveau 12
10 mai 2012 à 23:00:30

Je n'essaye pas Gimp, ça fait longtemps que j'ai décidé de ne plus l'utiliser :)

caelacanthe
caelacanthe
Niveau 10
10 mai 2012 à 23:13:09

gagne du temps et explique la nature de tes griefs contre ce logiciel, je sais que t'en meurs d'envie. :noel:

Paulop
Paulop
Niveau 12
10 mai 2012 à 23:32:24

Bon déjà je n'utilise que 1% des fonctionnalités, donc j'ai juste besoin de Paint.net.
Ensuite je trouve l'interface contre productive, j'arrive pas à m'y faire.
Enfin, j'ai toujours eu pas mal de problème de stabilité ou de lenteur avec donc je suis très bien avec mon Paint.net.

caelacanthe
caelacanthe
Niveau 10
11 mai 2012 à 01:34:05

"Ensuite je trouve l'interface contre productive, j'arrive pas à m'y faire. "

:d) même avec le mode simple-fenêtre qui représente une partie de l'intérêt de 2.8? :(

moi c'est le contraire, j'évite soigneusement paint.net. il représente probablement le juste milieu entre gimp et MSPaint, mais je préfère les extrêmes. :(

Paulop
Paulop
Niveau 12
11 mai 2012 à 10:30:57

Ben je sais pas, je jetterai un coup d’œil pour voir les nouveautés de la 2.8.
Dans le même ordre d'idée, j'aime pas Blender non plus ^^

_skip
_skip
Niveau 10
11 mai 2012 à 11:51:48

Wow ils ont enfin arrêté avec cette grosse merde de fenêtres flottantes!!!
Ca leur a pris 10 ans mais ils l'ont fait! Quel grand pas! Je vais enfin pouvoir m'y remettre.

caelacanthe
caelacanthe
Niveau 10
11 mai 2012 à 12:55:00

j'ai trouvé un cheat pour utiliser le cage deformation tool dans les grosses images, il suffit d'entourer la section qu'on veut déformer d'un rectangle de sélection et d'utiliser l'outil de déformation à l'intérieur de cette sélection, mais ça reste du bricolage... à l'occasion, j'essayerai de le compiler, avec toutes les options pour qu'il soit optimisé uniquement pour MON processeur. :content:

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