首页 > 解决方案 > Windows 窗体,从主窗体中的类访问图片框

问题描述

我正在做一个游戏,我想让东西掉下来,玩家应该试着抓住它。

目前,我正在下落的物品是在与主窗体分开的类中绘制和制作的,所以当我尝试从我控制引力的主窗体中访问它们时。我似乎找不到图片框(picCoin)。

你能看看我的代码并提供一些解决方案吗?

这是我创建硬币的课程

class Coin
{

    private PictureBox picCoin = new PictureBox();
    public Coin()
    {
        picCoin.BackColor = Color.Transparent;
        picCoin.ImageLocation = @"C:\Users\sebfre1104\source\repos\SPEL\SPEL\Resources\hamburger.png";
        picCoin.Width = 100;
        picCoin.Height = 100;
        picCoin.SizeMode = PictureBoxSizeMode.StretchImage;     
    }
    public void DrawTo(Form f)
    {
        f.Controls.Add(picCoin);
    }
    public Rectangle getBounds()
    {
        return picCoin.Bounds;   
    }
    public void setposition(int x, int y)
    {        
        picCoin.Location = new Point(x, y);
    }

}

我想以我的主要形式访问这个 picCoin,这样我就可以在私人 void TimerGravitation_Tick(object sender, EventArgs e) 中添加重力

public partial class Form1 : Form
{

    bool IsJumping = false;
    List<Coin> clist = new List<Coin>();
    int poäng = 0;
    public Form1()
    {
        InitializeComponent();
    }

    private void TimerGravitation_Tick(object sender, EventArgs e)
    {

        if(!picSpelare.Bounds.IntersectsWith(picMark.Bounds) && IsJumping==false)
        {
            picSpelare.Top += 10;
        }
    }

我将非常感谢任何提示,因为这是我在课堂上的最后一个项目。

标签: c#visual-studio2d

解决方案


我不知道我是否正确理解了问题,但将 picCoin 公开

制作

private PictureBox picCoin = new PictureBox();

 public PictureBox picCoin = new PictureBox();

推荐阅读