IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

C# les bases des Class et attribut


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Par défaut C# les bases des Class et attribut
    Salut a tous !

    Je suis en train de reprendre les bases en C#

    Je veux que mon code ne soit pas un bordel monstre avec des lignes de code inutile.

    Je suis entrain d'apprendre le C# avec le FrameWork XNA (A NE PAS PRENDRE EN COMPTE), et a vrai dire j'ai un peu de mal concernant les Class.

    (Ceci est un problème d'appel d'attribut de Class)Par exemple dans mon projet l'attribut TextureSprite n'est pas pris en compte. Il renvoi NULL a chaque fois, alors que je ne sais pas pourquoi...
    Si vous pouvez m'aider a résoudre ce problème de Class en C#

    Et sinon voila, je pense avoir fait le mieux, des avis sur mon code en C# ?

    Merci !


    PROJET : WindowsGame1.rar

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    j'ai regardé brièvement ta classe ClassSprite.cs

    Il te manque un élément important :
    - pour le fonctionne de ta classe
    - dans ta compréhension du concept.

    Tu déclares de variables publiques. Tu crées un constructeur de classe qui prend en paramètre 4 paramètre du même type que les variables publiques que tu as déclarées.
    Mais à aucun moment tu ne spécifies que ces 4 "éléments" définissent ta classe.

    Pour cela, il faut passer par le concept de propriété des classes.

    Pour faire simple:
    - tu définis les attributs qui constituent ta classe
    - tu gères l'affectation et la récupération des valeurs de ces attributs via des accesseurs.

    Si je modifie ta classe, voilà ce que ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Graphics;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace WindowsGame1
    {
        class ClassSprite
        {
            //VARIABLES
            private float sizeSprite;
            private Texture2D textureSprite;
            private Vector2 positionSprite;
            private Rectangle rectangleSprite;
     
           //PROPRIETES
    		public float SizeSprite 
    	    {
    		  get 
    		  {
    			 return sizeSprite; 
    		  }
    		  set 
    		  {
    			 sizeSprite = value; 
    		  }
    	    }
     
    		public Texture2D TextureSprite 
    	    {
    		  get 
    		  {
    			 return textureSprite; 
    		  }
    		  set 
    		  {
    			 textureSprite = value; 
    		  }
    	    }
     
    		public Vector2 PositionSprite 
    	    {
    		  get 
    		  {
    			 return positionSprite; 
    		  }
    		  set 
    		  {
    			 positionSprite = value; 
    		  }
    	    }
     
    		public Rectangle RectangleSprite 
    	    {
    		  get 
    		  {
    			 return rectangleSprite; 
    		  }
    		  set 
    		  {
    			 rectangleSprite = value; 
    		  }
    	    }
     
    		// l'écriture des accesseurs peut être réduite ainsi : 
    		//public float SizeSprite { get; set; }
    		//public Texture2D TextureSprite { get; set; }
    		//public Vector2 PositionSprite { get; set; }
            //public Rectangle RectangleSprite { get; set; }
     
     
            //CONSTRUCTEUR
            public ClassSprite()
            {
                //TextureSprite = ClassRessource.Personnage;
            }
     
            public ClassSprite(Texture2D texture, Vector2 position, Rectangle rectangle, float size)
            {
                this.TextureSprite = texture;
                this.PositionSprite = position;
                this.RectangleSprite = rectangle;
                this.SizeSprite = size;
            }
     
            //METHODES
     
     
            //UPDATE ET DRAW
            public void Draw(SpriteBatch spriteBatch)
            {
     
                spriteBatch.Draw(ClassRessource.Personnage, PositionSprite, RectangleSprite, Color.White, 0f, new Vector2(25, 25), SizeSprite, SpriteEffects.None, 1);
     
            }  
        }
    }
    Je te conseille le tutoriel suivant, tu y trouveras tout ce qu'il faut pour démarrer sur de bonnes base.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Par défaut
    Salut !

    Merci a toi, je comprends comment ca fonctionne

    Par contre dans ma classPersonnage je laisse comme ca ? "Sprite = new ClassSprite(Texture, Position, Rectangle, Scale);"

    Mon attribut Texture me renvoi NULL c'est bizarre :/ !

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Je pense qu'il faut que tu repartes des bases car visiblement tu ne maitrises pas les concepts de base de la POO.

    Si tu n'as pas modifié la manière dont tu définis ta classe ClassRessource, il est normal que ta variable Texture soit vide.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Par défaut
    En faites, je vais être bref, j'apprends la POO depuis 1 semaine x) et j'ai beaucoup de mal.

    Pour résoudre mon problème il faudrait que je fasse quoi ?

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Bonjour,

    pas la peine de passer par un MP, le forum est là pour ça.

    Ton attribut Texture est null.
    En effet, puisqu'à ce que je vois, à aucun moment tu ne lui affectes une valeur ou un objet.
    Qui plus est, pourquoi la variable Personnage de ta classe ClassRessource est-elle statique ?

    As-tu modifié toutes tes classes comme indiqué dans mon précédent message ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/05/2014, 00h12
  2. Apprendre les bases des "bases de données"
    Par dalhia dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2006, 02h42
  3. Réponses: 4
    Dernier message: 16/08/2006, 09h19
  4. specifier les chemins des .class
    Par draken dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/07/2003, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo