簡體   English   中英

如何將png保存在矩形中?

[英]How can i save a png in a rectangle?

我在 Winforms 中構建了一個 Snake 游戲,我需要一些 png 作為食物。 如何將png保存在矩形中? 這是一些代碼:

class Food
{
    #region Variables
    private int x, y, widht = 20, hight = 20;
    private SolidBrush brush;
    public Rectangle foodrectangle;

    int fieldsize_X = 47;// spawnrange
    int fieldsize_Y = 38;// spawnrange
    int squaresize = 20;

    #endregion

“價值”變量是一個隨機數,所以我可以有隨機顏色。

    #region Normal Food

    public void changecolor()
    {
        switch (Form1.worth)
        {
            case 1:
                brush = new SolidBrush(Color.Red); 
                break;

            case 2:
                brush = new SolidBrush(Color.Orange); 
                break;

            case 3:
                brush = new SolidBrush(Color.Yellow); 
                break;

            case 4:
                brush = new SolidBrush(Color.Blue); 
                break;

            case 5:
                brush = new SolidBrush(Color.White); 
                break;
            default: brush = new SolidBrush(Color.Red); break;
        }
    }



    public Food(Random randomfood)
    {
        changecolor();

        x = randomfood.Next(0, fieldsize_X) * squaresize; 
        y = randomfood.Next(0, fieldsize_Y) * squaresize;

        foodrectangle = new Rectangle(x, y, widht, hight);

    }//creat Food

我使用計時器,所以我需要在時間開始之前產生食物。 當您按下箭頭鍵時,計時器開始計時。

    public void Foodlocation (Random randomfood)
    {
        changecolor();

        x = randomfood.Next(0, fieldsize_X) * squaresize;// 0 = spawnrange to the next food
        y = randomfood.Next(0, fieldsize_Y) * squaresize;

        foodrectangle.X = x; //X.Max = 47 * 20 = 940
        foodrectangle.Y = y; //Y.Max = 38 * 20 = 760

        foodrectangle = new Rectangle(x, y, widht, hight);//spawn first food

    }

    public void drawFood (Graphics paper)
    { 
        paper.FillRectangle(brush, foodrectangle);

    }
    #endregion
}

我想要一個依賴於“價值”變量的 png,而不是顏色。 如果“價值”= 1,那么正方形有apple.png 或類似的東西。

這應該有效

public void drawFood (Graphics paper)
{ 
    // Load a png object from a file.
    Image sourceImage = Image.FromFile(@"C:\my.png");

    // Draw a portion of the source image.
    paper.DrawImage(sourceImage, foodrectangle.X, foodrectangle.Y, new Rectangle(0, 0, squaresize, squaresize), GraphicsUnit.Pixel);
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM