2010-11-06 16 views
0

J'ai posé une question sur le jeu d'échecs il y a 2 jours, et un ami me suggère le code ci-dessous, et j'ai des questions à ce sujet.insérer l'image dans les codes du jeu d'échecs C#

veuillez voir: image privée Displayimage;

Je ne sais pas comment devrais-je mettre des images de pièces de jeu d'échecs dedans, et où devrais-je le mettre? classe PiecePosition {

public enum ChessColor 
    { 
     White, 
     Black, 
    } 
    public class ChessPiece 
    { 
     private Image DisplayedImage; 
     private ChessColor DisplayedColor; 
     private Point CurrentSquare; 
     private Point[] ValidMoves; 
     public ChessPiece(Image image, ChessColor color) 
     { 
      DisplayedImage = image; 
      DisplayedColor = color; 
     } 
    } 
    public class KingPiece : ChessPiece 
    { 

     public KingPiece(Image image, ChessColor color) 
      : base(image, color) 
     { 
      ValidMoves[0] = new Point(0, -1); // Up 1 
      ValidMoves[1] = new Point(1, -1); // Up 1, Right 1 
      ValidMoves[2] = new Point(1, 0);  // Right 1 

      ValidMoves[7] = new Point(-1, -1); // Left 1, Up 1 
     } 

    } 
    public class Board 
    { 

     private ChessPiece[,] square; 
     private int SquareWidth; // Number of pixels wide 
     private int SquareHeight; // Number of pixels high 



    } 
} 
+0

Vous avez déjà une Image Privée ImageImage, alors quelle est la question ici? –

+0

Sur une note quelque peu sans rapport, je marquerais la classe ChessPiece comme une classe «abstraite» parce que vous ne voudrez plus jamais créer une instance d'une pièce d'échecs générique. Vous pouvez toujours utiliser ChessPiece comme classe de base pour désigner n'importe quel type de pièce. –

Répondre

3

Si vous vous demandez comment vous pouvez compiler les images avec votre code source et les accès, la meilleure façon est d'ajouter les images à votre projet à l'aide Resources. Cela vous permet d'ajouter facilement des fichiers externes en tant que ressources intégrées dans votre projet qui seront compilées directement dans votre exécutable.

Pour ajouter une ressource à votre projet, procédez comme suit:

  1. Dans l'Explorateur de solutions clic droit sur le projet que vous souhaitez ajouter une ressource à. Sélectionnez option "Propriétés" et cliquez sur l'onglet "Ressources" .
  2. En regardant la barre d'outils en haut de la fenêtre Ressources, le premier bouton vous permet de sélectionner le type de ressources que vous souhaitez ajouter ou modifier dans votre projet. Dans votre cas, vous souhaitez ajouter une image, sélectionnez "Image" dans la liste des options du menu déroulant.
  3. Puis cliquez sur la flèche déroulante à côté du bouton "Ajouter une ressource". À partir de là, vous pouvez ajouter une nouvelle image (que vous pouvez dessiner et modifier depuis Visual Studio) ou ajouter une image existante que vous avez déjà sur votre ordinateur.

Maintenant que vous avez ajouté des ressources à votre fichier de projet, vous pouvez les utiliser dans votre code comme celui-ci (tous les détails d'accès sont gérés automatiquement par la classe ResourceManager):

System.Drawing.Bitmap kingImage = MyChessGame.Properties.Resources.KingImage; 
KingPiece kingPiece = new KingPiece(kingImage, ChessColor.White); 
+0

Je l'ai fait, mais il dit toujours: Le nom du type ou de l'espace de noms 'Image' n'a pas pu être trouvé. Dois-je définir une classe ou etc pour Image? – Arash

+0

quelqu'un m'aider? – Arash

+1

Votre projet doit avoir une référence à System.Drawing, mais il doit l'avoir par défaut. –

1

Vous devez spécifier l'emplacement d'image (ressource de préférence).
Tout d'abord, ajoutez l'image à vos ressources. Découvrez this link à partir de MSDN pour plus d'informations. Ensuite, faites quelque chose comme:

var KingImage = WindowsFormsApplication1.Properties.Resources.KingImage; 
var kingPiece = new KingPiece(KingImage, Color.Black);