2010-11-06 88 views
0

2天前,我问了一个关于国际象棋游戏的问题,并且一位朋友向我推荐了下面的代码,并且对此有疑问。 it was this link将图像插入国际象棋游戏中的代码c#

请参阅: private image Displayimage;

我不知道我应该怎样把棋子的图像放在里面,我应该把它放在哪里? 类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

你已经有一个'私人Image DisplayedImage;'这里有什么问题? – 2010-11-06 11:08:52

+0

在一个稍微不相关的说明中,我将ChessPiece类标记为“抽象”类,因为您永远不会想要创建通用棋子的实例。你仍然可以使用ChessPiece作为基类来引用任何特定类型的棋子。 – 2010-11-06 11:29:46

回答

3

如果你想知道如何编译图像与源代码一起,然后访问它们,最简单的方法是将图片添加到使用Resources项目。这使您可以轻松地将外部文件作为嵌入式资源添加到项目中,并直接编译到可执行文件中。

要将资源添加到您的项目,请按照下列步骤操作:

  1. 在Solution Explorer中, 右键单击要 项目中添加一个资源。选择 “属性”选项并单击 “资源”选项卡。
  2. 查看“资源”窗口顶部的工具栏,第一个按钮允许您选择要在项目中添加或编辑的资源类型。在你的情况下,你想添加一个图像,所以从下拉菜单的选项列表中选择“图像”。
  3. 然后点击“添加资源”按钮旁边的下拉箭头。从这里,你可以添加一个新的图像(你可以在Visual Studio中绘制和编辑)或者添加一个已经存在于你的计算机上的现有图像。

现在,您已经添加资源到您的项目文件,你可以在你的代码中使用它们像这样(所有的访问细节由ResourceManager类自动处理):

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

我这样做了,但它仍然说:无法找到类型或命名空间名称'Image'。是否应该为Image定义任何类或类? – Arash 2010-11-06 13:54:22

+0

有人帮我吗? – Arash 2010-11-06 14:10:37

+1

您的项目需要具有对System.Drawing的引用,但它应该默认具有此项。 – 2010-11-06 14:21:32

1

您需要指定图像的位置(资源优选地)。
首先,将图像添加到您的资源。查看来自MSDN的this link以获取更多信息。然后这样做:

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