2010-11-06 51 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);