c#Flappybird“非可调用成员不能像方法一样使用”

时间:2016-09-01 08:43:50

标签: c# vb.net

我正在尝试在Visual Studio 2015 c#中为一个小学校项目重新创建flappybird。但由于某种原因,我得到这个错误,我真的无法解决。我正在学习如何创建flappybird的教程,但是制作教程的教程是在VB.net中编写继承YT链接以及我正在尝试制作的代码。 https://www.youtube.com/watch?v=tnjdMbdEzMo

public partial class Form10 : Form
{

    int gravity = 1;
    int yspeed = 0;
    PictureBox[,] Pipe;

    public Form10()
    {
        InitializeComponent();
    }

    private void gameTimer_Tick(object sender, EventArgs e)
    {
        int i;
        this.yspeed += this.gravity;
        bird.Top += this.yspeed;            
    }
    private void inGameKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space)
        {
            this.yspeed = -15;
        }
    }
    private void pausePlayToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (gameTimer.Enabled == true)
        {
            gameTimer.Enabled = false;
        }
        else
        {
            if (gameTimer.Enabled == false)
            {
                gameTimer.Enabled = true;
            }
        }
    }
    private void restartToolStripMenuItem_Click(object sender, EventArgs e)
    {

    }
    private void startGame_Click(object sender, EventArgs e)
    {
        if (gameTimer.Enabled == false)
        {
            gameTimer.Enabled = true;
            startGame.Enabled = false;
        }
    }
    private void CreatePipes(int number)
    {
        int i = 0;
        for (i = 0; (i <= number); i++)
        {
            var temp = new PictureBox();
            this.Controls.Add(temp);
            temp.Width = 50;
            temp.Height = 370;
            temp.BorderStyle = BorderStyle.FixedSingle;
            temp.BackColor = Color.Red;
            temp.Top = 50;
            temp.Left = (2 * 200) + 300;
            Pipe(i) = temp;
            Pipe(i).Visable = true; 
        }
    }
    private void Form10_Load(object sender, EventArgs e)
    {
        gameTimer.Enabled = true;
        CreatePipes(1);
    }
}

}

1 个答案:

答案 0 :(得分:1)

您所看到的问题在于

Pipe(i) = temp;
Pipe(i).Visable = true; 

如果您尝试将Pipe作为数组访问,则语法为Pipe[i],尽管管道是2d数组,因此它应该是Pipe[i,j]其中j是其他内容。

你也有拼错的可见。