En tout cas, je vote pour au moins une deuxième page consacrée à développez-couché dans les prochains mags.
En gros nOObs, je me suis jeté corps et âmes depuis une semaine dans tous les tutoriaux.
Bon ...J'ai pas encore tout compris, mais j'ai déjà plus trop peur de rêver de classe, de variable et d'incrémentation la nuit!
Je me donne plus très longtemps pour être au niveau
En gros Sébum, ta rubrique je sens qu'elle va se faire attendre de quinze en quinze avec autant de fébrilité qu'un troupeau de buffle dans un slip trop serré.
Je soutiens aussi cette nouvelle rubrique ! (pourquoi 1 seul page ? ) Merci beaucoup à toi !
J'attend personnellement encore 1 ou 2 mags avant de me lancer dans le bousin, ça m'évitera de pleurer chaque semaine (c'est déjà fini ?!?). D'autant plus que je ne devrais pas vraiment rencontrer de difficultés pour le début
Salut tout le monde, j'ai juste une question débutant pour un code ( j'ai pas trouvé de topic où poser ma question) :
Il me retourne tout le temps " } attendue " et " Définition de type ou d'espace de noms, ou fin de fichier attendue", alors que y a bien le bon nombre de parenthèsesCode:namespace ConsoleApplication3 { class Program { static void Main(string[] args) { int Multiply(int x,int y) { return x*y; int number1= 3; int number2= 2; int number3= Multiply (number1, number2); Console.WriteLine (number3); Console.Read(); } } } }
Par ailleurs super idée Sébum, ça m'a donné envie de me mettre enfin au codage !
En fait je pense que tu dois mettre ton } après ton return, non? sans quoi tu appelles la méthode dans la méthode.
Je pense que tu dois d'abord définir ta méthode, et ensuite l'appeler.
La fonction int Multiply c'est pour tester la méthode Multiply ( un exercice débutant disponible ici). Le problème c'est que même avec une autre méthode genre " void SayHello" j'ai le même problème !
Et j'ai toujours le problème si je " ferme" après return.
Edit : Ok merci à vous, le problème c'est que je pensais qu'il fallait tout mettre dans le Main, mais j'ai déplacé mon int Multiply avant le Main et j'ai mis static devant int Multiply et ça marche !
Dernière modification par Nashkel ; 16/11/2011 à 03h44.
De cette façon, cela fonctionnera:
La fonction main sert à lancer ton programme.Code:class Program { int Multiply(int x,int y) { return x*y; } static void Main(string[] args) { Program p = new Program(); int number1= 3; int number2= 2; int number3= p.Multiply (number1, number2); Console.WriteLine (number3); Console.Read(); } }
Pour appeler les méthodes de la classe Program, tu dois instancier un objet de type Program dans ton main : Program p = new Program();
Tu peux ensuite utiliser cet objet pour appeler les méthodes de la classe Program:
int number3= p.Multiply (number1, number2);
Une communauté sur Warhammer 40k: www.zeliste40k.fr
Merci ! Effectivement, ça me permet de me passer du static devant ma fonction int Multiply
Moi je dis juste : excellente initiative, j'aurais adoré lire ce genre d'article il y a quelques années (maintenant c'est trop tard et de toute manière sous Linux, c'est mort), et si ça permet de faire un véritable jeu de bout en bout, c'est encore mieux.
Et peu importe le langage, le C# c'est parfait pour ce genre d'apprentissage.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Alors j'ai une petite question à propos de la leçon n°2 :
Dans la méthode Draw, on inscrit :
mais voilà, la deuxième valeur est un vecteur à 2 dimensions, et non un "rectangle de destination" comme indiqué sur l'aide de Visual...spriteBatch.Draw(texture_lapin, new Vector2(x, y), Color.White);
J'avoue que je saisi pas comment ça peut fonctionner.
ça voudrait dire que l'on peut remplacer un rectangle par un vecteur2 ? Mais du coup il manque la moitié des informations, non?
En fait, la méthode Draw de Spritebatch accepte plusieurs séquences de paramètres.
C'est ce qu'on appelle une méthode surchargée. Il est par exemple possible d'écrire une méthode qui accepte comme paramètres un int puis un string, ou bien un int seulement (c'est très utile quand on a des paramètres optionnels pas nécessaires dans toutes les situations).
Parmi les options possibles pour Spritebatch.Draw(), on a :
SpriteBatch.Draw (Texture2D, Vector2, Color)
SpriteBatch.Draw (Texture2D, Rectangle, Color)
SpriteBatch.Draw (Texture2D, Rectangle, Rectangle, Color)
SpriteBatch.Draw (Texture2D, Rectangle, Rectangle, Color, Single, Vector2, SpriteEffects, Single)
et encore un ou deux autres (la liste complète ici).
Dans la leçon numéro 2, c'est "texture2D, vector2, color" qui est utilisé.
Bien entendu, quand on passe un vecteur en paramètre et pas un rectangle, c'est la taille d'origine de l'image qui est utilisée.
Yes! Merci Mister Sebum pour cette explication claire!
Je constate d'ailleurs en manipulant la méthode que lorsqu'on ajoute une virgule, le programme nous fait apparaître une petite info-bulle, dans laquelle on peut faire défiler les différentes formules.
Classe.
Je retourne coder....
Mais mais... mais qu'est-ce donc que cette indentation dans le dernier numéro ? Pourquoi tant de haine ?
Petite question, mais le "override" est obligatoire en C# ? Ou il est là juste parce que c'est bien de le mettre ?
Rust fanboy
C'est obligatoire quand tu implémentes une méthode virtuelle ou abstraite héritée.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Ma didonc, c'est que tu as du succès, LFS, avec tes cours d'XNA ^^
J'ai franchement pas trop de temps en ce moment pour me pencher sur ton sujet, mais je suis curieux de ce que ca donnera sur le long terme.
Est-ce la le renouveau ce ce qu'était 3D Game Creator en son temps ?
@Tomaka17 : Je m'y connait pas trop trop en C#, mais root a raison (toujours). Lors d'un héritage, il faut toujours redéfinir dans la classe fille les méthodes dites "abstraites" dans la mère. C'est un moyen d'avoir un code polymorphique.
Vraiment sympatoche tes cours, c'est très accessible et pour quelqu'un comme moi qui a fait principalement du C et du Java jusque la c'est plutôt intéressant.
Et bon sang après un mois de C ansi ça fait du bien de revoir des classes , et une vraie ide aussi (emacs... ><).
Pour les débutant qui se demandent comment centrer un sprite, il faut utiliser les dimension de votre fenêtre (idéalement de façon dynamique) et du sprite.
Code:x = GraphicsDevice.Viewport.Width / 2 - texture_lapin.Width / 2; y = GraphicsDevice.Viewport.Height / 2 - texture_lapin.Height / 2;
Une question :
Apparemment, Visual C# express est une partie de Visual Studio 2010. Si on a accès à ce dernier est qu'on peut l'utiliser à la place ? Ca ne posera pas trop de problème ?
---------- Post added at 21h01 ---------- Previous post was at 20h53 ----------
D'ailleurs, je suis le lien en premier poste, je clique sur "Télécharger", je remplis le formulaire et ça me télécharge Microsoft Visual Basic Express...WTF ?!?
Les Visual express sont effectivement des versions allégé de visual studio ... Donc fonce tu ne peut qu'y gagner.
Perso j'utilise c++ 2010 express sur mon pc perso ( J'ai une License visual studio 2008 pour le boulot mais qui n'est pas compatible avec mon seven 64 ) et certains manque sont parfois pénible (principalement le débogueur trop limité et l'impossibilité d'annuler une compilation ).
Merci de ta réponse
Par contre c'est vraiment étrange pour le lien en première page. Il y a bien marqué "C# express" au début, mais après le formulaire, ça télécharge Visual Basic (qui apparemment ne permet pas de faire de projet C#).
J'ai eu le même problème.
Je suis passé par la page anglaise de Visual C# express. On peut sélectionner le français comme langue.
Si je peux me permettre, et même si ça demande un petit effort au début, il vaut mieux utiliser un environnement en anglais.
Parce que du coup toutes les options, tous les messages d'erreur seront aussi en anglais, et qu'il sera donc bien plus facile de faire des recherches sur Internet en cas de souci.
Et il y aura forcément plein de messages d'erreur au début, et ils ne seront pas beaucoup plus compréhensibles en français qu'en anglais de toute façon...
C'est pas forcément vrai, mon Visual C++ est en français et affiche tous ses messages d'erreur en français (remarque, je l'ai relancé juste pour vérifier avant de poster parce que j'étais plus sûr)
Au pire des cas il y a un code d'erreur devant qu'il suffit de taper dans Google pour avoir des informations un peu plus fournies à son sujet
En revanche là où l'anglais est omniprésent c'est dans le code lui-même et dans ses commentaires. Par exemple tu n'écriras jamais "largeurEcran" mais plutôt "screenWidth".
Il y a rien de plus chiant que de tomber sur un code source en portugais ou en bengali, et c'est à ce moment là que tu comprends qu'il faut éviter de coder en français
Rust fanboy
A quand un langage dont les mots clefs seraient localisés ? Genre :
:3Code:si(bla > 0) { tantque(bla > 0) { pour(entier32 i = 0; i < bla; ++i) { affichef("test2 %d\n", bla); } bla--; } } sinon { affichef("test %d\n", bla); }
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."